Skip to content

Commit dcb914c

Browse files
muhomorrthestinger
authored andcommitted
gmscompat: add support for granting any permission to GmsCore on dev builds
1 parent d711be3 commit dcb914c

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

services/core/java/com/android/server/pm/ext/GmsCoreHooks.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import android.Manifest;
44
import android.content.pm.ServiceInfo;
5+
import android.os.SystemProperties;
56
import android.service.credentials.CredentialProviderService;
67

78
import com.android.internal.gmscompat.GmcMediaProjectionService;
@@ -16,7 +17,20 @@
1617
import java.util.Collections;
1718
import java.util.List;
1819

19-
class GmsCoreHooks {
20+
class GmsCoreHooks extends PackageHooks {
21+
22+
@Override
23+
public int overridePermissionState(String permission, int userId) {
24+
if (android.os.Flags.isDevBuild()) {
25+
if (SystemProperties.getBoolean("sys.gmscore_grant." + permission, false)) {
26+
return PERMISSION_OVERRIDE_GRANT;
27+
}
28+
if (SystemProperties.getBoolean("sys.gmscore_revoke." + permission, false)) {
29+
return PERMISSION_OVERRIDE_REVOKE;
30+
}
31+
}
32+
return NO_PERMISSION_OVERRIDE;
33+
}
2034

2135
static class ParsingHooks extends GmsCompatPkgParsingHooks {
2236

services/core/java/com/android/server/pm/ext/PackageHooksRegistry.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public static PackageHooks getHooks(int packageId) {
3030
case PackageId.ANDROID_AUTO -> new AndroidAutoHooks();
3131
case PackageId.PIXEL_CAMERA_SERVICES -> new PixelCameraServicesHooks();
3232
case PackageId.PIXEL_HEALTH -> new PixelHealthHooks();
33+
case PackageId.GMS_CORE -> new GmsCoreHooks();
3334
default -> PackageHooks.DEFAULT;
3435
};
3536
}

0 commit comments

Comments
 (0)