diff options
| author | 2022-06-17 12:56:09 +0200 | |
|---|---|---|
| committer | 2024-09-05 10:28:32 +0000 | |
| commit | a794cdf61c41da3dc066938de56ed8509adb2675 (patch) | |
| tree | c1e72d8c0bd91b6d4fcdfb4f948d4f1779cb020f | |
| parent | e3a5bb9d61dc070294900e6dd058419023e18c35 (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.java | 13 |
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); |