summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Edward Savage-Jones <edward.savage-jones@sony.com> 2022-06-17 12:56:09 +0200
committer Ed Savage-Jones <edward.savage-jones@sony.com> 2024-09-05 10:28:32 +0000
commita794cdf61c41da3dc066938de56ed8509adb2675 (patch)
treec1e72d8c0bd91b6d4fcdfb4f948d4f1779cb020f
parente3a5bb9d61dc070294900e6dd058419023e18c35 (diff)
Allow fabricated RROs to survive a reboot in non-user builds
Fabricated RROs created by shell are quite useful for debugging purposes during development. Allow them to persist in non-user builds. Test: $ adb shell cmd overlay fabricate --target android --name Test android:bool/test 0x12 1 $ adb shell cmd overlay enable com.android.shell:Test $ adb shell cmd overlay list | grep Test --- com.android.shell:Test Change-Id: I4dfdb451ae4ae8ffe745b56c325fa3ce304a78e1
-rw-r--r--services/core/java/com/android/server/om/OverlayManagerService.java13
1 files changed, 7 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/om/OverlayManagerService.java b/services/core/java/com/android/server/om/OverlayManagerService.java
index 872952299055..fb2d746ee8cd 100644
--- a/services/core/java/com/android/server/om/OverlayManagerService.java
+++ b/services/core/java/com/android/server/om/OverlayManagerService.java
@@ -289,12 +289,13 @@ public final class OverlayManagerService extends SystemService {
restoreSettings();
- // Wipe all shell overlays on boot, to recover from a potentially broken device
- String shellPkgName = TextUtils.emptyIfNull(
- getContext().getString(android.R.string.config_systemShell));
- mSettings.removeIf(overlayInfo -> overlayInfo.isFabricated
- && shellPkgName.equals(overlayInfo.packageName));
-
+ if (Build.IS_USER) {
+ // Wipe all shell overlays on boot, to recover from a potentially broken device
+ String shellPkgName = TextUtils.emptyIfNull(
+ getContext().getString(android.R.string.config_systemShell));
+ mSettings.removeIf(overlayInfo -> overlayInfo.isFabricated
+ && shellPkgName.equals(overlayInfo.packageName));
+ }
initIfNeeded();
onStartUser(UserHandle.USER_SYSTEM);