@@ -147,16 +147,18 @@ internal class PackageValidator(context: Context) {
147147 private fun buildCallerInfo (callingPackage : String ): CallerPackageInfo ? {
148148 val packageInfo = getPackageInfo(callingPackage) ? : return null
149149
150- val appName = packageInfo.applicationInfo.loadLabel(packageManager).toString()
151- val uid = packageInfo.applicationInfo.uid
150+ val appName = packageInfo.applicationInfo? .loadLabel(packageManager).toString()
151+ val uid = packageInfo.applicationInfo? .uid ? : - 1
152152 val signature = getSignature(packageInfo)
153153
154154 val requestedPermissions = packageInfo.requestedPermissions
155155 val permissionFlags = packageInfo.requestedPermissionsFlags
156156 val activePermissions = mutableSetOf<String >()
157- requestedPermissions?.forEachIndexed { index, permission ->
158- if (permissionFlags[index] and REQUESTED_PERMISSION_GRANTED != 0 ) {
159- activePermissions + = permission
157+ if (permissionFlags != null ) {
158+ requestedPermissions?.forEachIndexed { index, permission ->
159+ if (permissionFlags[index] and REQUESTED_PERMISSION_GRANTED != 0 ) {
160+ activePermissions + = permission
161+ }
160162 }
161163 }
162164
@@ -189,12 +191,12 @@ internal class PackageValidator(context: Context) {
189191 */
190192 @Suppress(" deprecation" )
191193 private fun getSignature (packageInfo : PackageInfo ): String? =
192- if (packageInfo.signatures == null || packageInfo.signatures.size != 1 ) {
194+ if (packageInfo.signatures == null || packageInfo.signatures!! .size != 1 ) {
193195 // Security best practices dictate that an app should be signed with exactly one (1)
194196 // signature. Because of this, if there are multiple signatures, reject it.
195197 null
196198 } else {
197- val certificate = packageInfo.signatures[0 ].toByteArray()
199+ val certificate = packageInfo.signatures!! [0 ].toByteArray()
198200 getSignatureSha256(certificate)
199201 }
200202
0 commit comments