``` private PackageInfo mayFakeSignature(AndroidPackage p, PackageInfo pi, Set permissions) { String hash = p.mSigningDetails.getSha256Certificate(); try { if (hash.equals(microGHash) && p.getTargetSdkVersion() > Build.VERSION_CODES.LOLLIPOP_MR1) { // Only allow microG and FakeStore String packageName = p.getPackageName(); if (packageName.equals("com.google.android.gms") || packageName.equals("com.android.vending")) { pi.signatures = new Signature[] {new Signature(MICROG_FAKE_SIGNATURE)}; } } } catch (Throwable t) { // We should never die because of any failures, this is system code! Log.w("PackageManagerService.FAKE_PACKAGE_SIGNATURE", t); } return pi; } ```