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

Commit 8dc558bb authored by Christopher Tate's avatar Christopher Tate Committed by The Android Automerger
Browse files

Make sure SELinux labels are correct after move-to operations

In some circumstances wallpaper-related files are moved into position,
and must then take proper effect.  Make sure that they have the
correct SELinux labels afterwards to avoid preventing some valid
accesses.

Bug 29469965

Change-Id: I6d7c86be63d568fa0ad8841d109a7ff2149fdd54
parent a8ac84da
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -229,10 +229,12 @@ public class WallpaperManagerService extends IWallpaperManager.Stub {

            if (moved && lockWallpaperChanged) {
                // We just migrated sys -> lock to preserve imagery for an impending
                // new system-only wallpaper.  Tell keyguard about it but that's it.
                // new system-only wallpaper.  Tell keyguard about it and make sure it
                // has the right SELinux label.
                if (DEBUG) {
                    Slog.i(TAG, "Sys -> lock MOVED_TO");
                }
                SELinux.restorecon(changedFile);
                notifyLockWallpaperChanged();
                return;
            }
@@ -254,9 +256,11 @@ public class WallpaperManagerService extends IWallpaperManager.Stub {
                            if (moved) {
                                // This is a restore, so generate the crop using any just-restored new
                                // crop guidelines, making sure to preserve our local dimension hints.
                                // We also make sure to reapply the correct SELinux label.
                                if (DEBUG) {
                                    Slog.v(TAG, "moved-to, therefore restore; reloading metadata");
                                }
                                SELinux.restorecon(changedFile);
                                loadSettingsLocked(wallpaper.userId, true);
                            }
                            generateCrop(wallpaper);