Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea0de66d authored by Jonathan Klee's avatar Jonathan Klee Committed by Nolen Johnson
Browse files

Allow spoofing signingInfo for microG Companion/Services



- Spoof PackageInfo signingInfo + signatures so that
  G suite apps do not complain anymore.

Change-Id: I86f182c9e1d18b0e997803842577a90ef740cfd1
Signed-off-by: default avataralthafvly <althafvly@gmail.com>
parent c04bdc0d
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -191,6 +191,7 @@ import android.content.pm.SELinuxUtil;
import android.content.pm.ServiceInfo;
import android.content.pm.SharedLibraryInfo;
import android.content.pm.Signature;
import android.content.pm.SigningInfo;
import android.content.pm.UserInfo;
import android.content.pm.VerifierDeviceIdentity;
import android.content.pm.VerifierInfo;
@@ -4127,6 +4128,18 @@ public class PackageManagerService extends IPackageManager.Stub
                    resolveExternalPackageNameLPr(p);
            generateFakeSignature(p).ifPresent(fakeSignature -> {
                packageInfo.signatures = new Signature[]{fakeSignature};
                try {
                    packageInfo.signingInfo = new SigningInfo(
                            new SigningDetails(
                                    packageInfo.signatures,
                                    SigningDetails.SignatureSchemeVersion.SIGNING_BLOCK_V3,
                                    null,
                                    null
                            )
                    );
                } catch (CertificateException e) {
                    Slog.e(TAG, "Caught an exception when creating signing keys: ", e);
                }
            });
            return packageInfo;