Fix FDroid filter
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user