Fix FDroid filter

This commit is contained in:
Rahul Kumar Patel
2021-02-27 02:58:46 +05:30
parent 8ebb362f58
commit 9f5016f438
2 changed files with 13 additions and 14 deletions

View File

@@ -35,22 +35,24 @@ object CertUtil {
private fun getX509Certificates( private fun getX509Certificates(
context: Context, context: Context,
packageName: String packageName: String
): List<X509Certificate?> { ): List<X509Certificate> {
val certificates: MutableList<X509Certificate?> = mutableListOf() val certificates: MutableList<X509Certificate> = mutableListOf()
val packageManager = context.applicationContext.packageManager val packageManager = context.applicationContext.packageManager
try { try {
val packageInfo = if (isPAndAbove()) val packageInfo = if (isPAndAbove()) {
packageManager.getPackageInfo( packageManager.getPackageInfo(
packageName, packageName,
PackageManager.GET_SIGNING_CERTIFICATES PackageManager.GET_SIGNING_CERTIFICATES
) )
else }
else {
packageManager.getPackageInfo( packageManager.getPackageInfo(
packageName, packageName,
PackageManager.GET_SIGNATURES PackageManager.GET_SIGNATURES
) )
}
val certificateFactory = CertificateFactory.getInstance("X509") val certificateFactory = CertificateFactory.getInstance("X509")
@@ -63,7 +65,7 @@ object CertUtil {
) )
} }
} else { } else {
for (i in 0..packageInfo.signatures.size) { for (i in packageInfo.signatures.indices) {
val bytes = packageInfo.signatures[i].toByteArray() val bytes = packageInfo.signatures[i].toByteArray()
val inStream: InputStream = ByteArrayInputStream(bytes) val inStream: InputStream = ByteArrayInputStream(bytes)
certificates.add( certificates.add(
@@ -72,7 +74,7 @@ object CertUtil {
} }
} }
} catch (e: Exception) { } catch (e: Exception) {
Log.e(e.message)
} }
return certificates return certificates
@@ -85,13 +87,10 @@ object CertUtil {
false false
else { else {
val cert = certificates[0] val cert = certificates[0]
if (cert != null) {
if (cert.subjectDN != null) { if (cert.subjectDN != null) {
val DN = cert.subjectDN.name.toUpperCase(Locale.getDefault()) val DN = cert.subjectDN.name.toUpperCase(Locale.getDefault())
DN.contains(FDROID) || DN.contains(GUARDIAN) DN.contains(FDROID) || DN.contains(GUARDIAN)
} else {
false
}
} else { } else {
false false
} }

View File

@@ -124,7 +124,7 @@ object PackageUtil {
} }
if (isFdroidFilterEnabled) { if (isFdroidFilterEnabled) {
packageInfoList packageInfoList = packageInfoList
.filter { .filter {
val packageInstaller = packageManager.getInstallerPackageName(it.packageName) val packageInstaller = packageManager.getInstallerPackageName(it.packageName)
packageInstaller != "org.fdroid.fdroid.privileged" packageInstaller != "org.fdroid.fdroid.privileged"