mirror of
https://github.com/TeamNewPipe/NewPipe
synced 2025-09-04 20:07:56 +00:00
Fix compilation errors
This commit is contained in:
@@ -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.
|
||||
|
Reference in New Issue
Block a user