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

Commit 2df219d6 authored by Jonathan Klee's avatar Jonathan Klee Committed by Luca Stefani
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 39d16e1b
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -168,6 +168,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.security.cert.CertificateException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -1588,6 +1589,18 @@ public class ComputerEngine implements Computer {

            generateFakeSignature(p).ifPresent(fakeSignature -> {
                packageInfo.signatures = new Signature[]{fakeSignature};
                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);
                }
            });

            return packageInfo;