base: Sign the MicroG packages only if the 'grantedPermissions' contains the fake signature
For Magisk module to override fake store
Change-Id: I19bd0d11ec2ebf790c0f7bafbde46e1242806080
Signed-off-by: micky387 <mickaelsaibi@free.fr>
diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java
index b51c1e5..db81a65 100644
--- a/services/core/java/com/android/server/pm/ComputerEngine.java
+++ b/services/core/java/com/android/server/pm/ComputerEngine.java
@@ -1551,17 +1551,19 @@
}
if (isMicroG && mUseMicroGBuildType) {
- try {
- packageInfo.signingInfo = new SigningInfo(
- new SigningDetails(
- packageInfo.signatures,
- SigningDetails.SignatureSchemeVersion.SIGNING_BLOCK_V3,
- SigningDetails.toSigningKeys(packageInfo.signatures),
- null
- )
- );
- } catch (CertificateException e) {
- Slog.e(TAG, "Caught an exception when creating signing keys: ", e);
+ if (grantedPermissions.contains("android.permission.FAKE_PACKAGE_SIGNATURE")) {
+ try {
+ packageInfo.signingInfo = new SigningInfo(
+ new SigningDetails(
+ packageInfo.signatures,
+ SigningDetails.SignatureSchemeVersion.SIGNING_BLOCK_V3,
+ SigningDetails.toSigningKeys(packageInfo.signatures),
+ null
+ )
+ );
+ } catch (CertificateException e) {
+ Slog.e(TAG, "Caught an exception when creating signing keys: ", e);
+ }
}
}