java: config: guard linkToDeath() in getPm() against null binder to prevent NPE
fixes: https://github.com/beakthoven/TrickyStoreOSS/commit/23774e64a94c5cab08daa3ba2cec7a98db850cbd logs: 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: fatal: failed to get packages 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: java.lang.NullPointerException: Attempt to invoke interface method 'void android.os.IBinder.linkToDeath(android.os.IBinder$DeathRecipient, int)' on a null object reference 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at qe.a(Unknown Source:13) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at qe.c(Unknown Source:1) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at io.github.beakthoven.TrickyStoreOSS.interceptors.SecurityLevelInterceptor.onPreTransact(Unknown Source:107) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at io.github.beakthoven.TrickyStoreOSS.interceptors.BinderInterceptor.handlePreTransact(Unknown Source:50) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at io.github.beakthoven.TrickyStoreOSS.interceptors.BinderInterceptor.onTransact(Unknown Source:21) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at android.os.Binder.execTransactInternal(Binder.java:1392) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at android.os.Binder.execTransact(Binder.java:1299) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at android.os.BinderProxy.transactNative(Native Method) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at android.os.BinderProxy.transact(BinderProxy.java:685) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at android.system.keystore2.IKeystoreSecurityLevel$Stub$Proxy.generateKey(IKeystoreSecurityLevel.java:307) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at android.security.KeyStoreSecurityLevel.lambda$generateKey$0(KeyStoreSecurityLevel.java:145) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at android.security.KeyStoreSecurityLevel.$r8$lambda$XUH2FEW76sslYQDkYWi9Fg4yVEI(Unknown Source:0) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at android.security.KeyStoreSecurityLevel$$ExternalSyntheticLambda1.execute(Unknown Source:12) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at android.security.KeyStoreSecurityLevel.handleExceptions(KeyStoreSecurityLevel.java:55) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at android.security.KeyStoreSecurityLevel.generateKey(KeyStoreSecurityLevel.java:145) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at android.security.keystore2.AndroidKeyStoreKeyPairGeneratorSpi.generateKeyPair(AndroidKeyStoreKeyPairGeneratorSpi.java:651) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at java.security.KeyPairGenerator$Delegate.generateKeyPair(KeyPairGenerator.java:750) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at W.a(Unknown Source:497) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at vi.a(Unknown Source:20) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at io.github.beakthoven.TrickyStoreOSS.MainKt.a(Unknown Source:175) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at io.github.beakthoven.TrickyStoreOSS.MainKt.main(Unknown Source:15) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 08-30 15:46:05.226 1811 1811 E TrickyStoreOSS: at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:379) Signed-off-by: Dakkshesh <beakthoven@gmail.com>
This commit is contained in:
@@ -137,7 +137,7 @@ object PkgConfig {
|
||||
|
||||
fun getPm(): IPackageManager? {
|
||||
if (iPm == null) {
|
||||
val binder = ServiceManager.getService("package")
|
||||
val binder = ServiceManager.getService("package") ?: return null
|
||||
binder.linkToDeath(packageManagerDeathRecipient, 0)
|
||||
iPm = IPackageManager.Stub.asInterface(binder)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user