1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2025-09-04 20:07:56 +00:00

Fix compilation errors

This commit is contained in:
Isira Seneviratne
2025-07-21 09:11:24 +05:30
parent ded7205588
commit 1534c880ef

View File

@@ -146,21 +146,19 @@ internal class PackageValidator(context: Context) {
*/
private fun buildCallerInfo(callingPackage: String): CallerPackageInfo? {
val packageInfo = getPackageInfo(callingPackage) ?: return null
val applicationInfo = packageInfo.applicationInfo ?: return null
val appName = packageInfo.applicationInfo.loadLabel(packageManager).toString()
val uid = packageInfo.applicationInfo.uid
val appName = applicationInfo.loadLabel(packageManager).toString()
val uid = applicationInfo.uid
val signature = getSignature(packageInfo)
val requestedPermissions = packageInfo.requestedPermissions
val permissionFlags = packageInfo.requestedPermissionsFlags
val activePermissions = mutableSetOf<String>()
requestedPermissions?.forEachIndexed { index, permission ->
if (permissionFlags[index] and REQUESTED_PERMISSION_GRANTED != 0) {
activePermissions += permission
}
}
val requestedPermissions = packageInfo.requestedPermissions?.asSequence().orEmpty()
val permissionFlags = packageInfo.requestedPermissionsFlags?.asSequence().orEmpty()
val activePermissions = (requestedPermissions zip permissionFlags)
.filter { (_, flag) -> flag and REQUESTED_PERMISSION_GRANTED != 0 }
.mapTo(mutableSetOf()) { (permission, _) -> permission }
return CallerPackageInfo(appName, callingPackage, uid, signature, activePermissions.toSet())
return CallerPackageInfo(appName, callingPackage, uid, signature, activePermissions)
}
/**
@@ -188,15 +186,16 @@ internal class PackageValidator(context: Context) {
* returns `null` as the signature.
*/
@Suppress("deprecation")
private fun getSignature(packageInfo: PackageInfo): String? =
if (packageInfo.signatures == null || packageInfo.signatures.size != 1) {
private fun getSignature(packageInfo: PackageInfo): String? {
val signatures = packageInfo.signatures
return if (signatures == null || signatures.size != 1) {
// Security best practices dictate that an app should be signed with exactly one (1)
// signature. Because of this, if there are multiple signatures, reject it.
null
} else {
val certificate = packageInfo.signatures[0].toByteArray()
getSignatureSha256(certificate)
getSignatureSha256(signatures[0].toByteArray())
}
}
/**
* Finds the Android platform signing key signature. This key is never null.