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

Commit 618bf29a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Ignore the reboot to normal intent when DSU is locked" into udc-qpr-dev

parents 7d7180e4 982de9c9
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -285,4 +285,16 @@ public class DynamicSystemManager {
            throw new RuntimeException(e.toString());
        }
    }

    /**
     * Returns the active DSU slot
     */
    @RequiresPermission(android.Manifest.permission.MANAGE_DYNAMIC_SYSTEM)
    public String getActiveDsuSlot() {
        try {
            return mService.getActiveDsuSlot();
        } catch (RemoteException e) {
            throw new RuntimeException(e.toString());
        }
    }
}
+6 −0
Original line number Diff line number Diff line
@@ -145,4 +145,10 @@ interface IDynamicSystemService
     */
    @EnforcePermission("MANAGE_DYNAMIC_SYSTEM")
    long suggestScratchSize();

    /**
     * Get the active DSU slot
     */
    @EnforcePermission("MANAGE_DYNAMIC_SYSTEM")
    String getActiveDsuSlot();
}
+4 −1
Original line number Diff line number Diff line
@@ -423,7 +423,10 @@ public class DynamicSystemInstallationService extends Service
            Log.e(TAG, "It's already running in normal system.");
            return;
        }

        if (mDynSystem.getActiveDsuSlot().endsWith(".lock")) {
            Log.e(TAG, "Ignore the reboot intent for a locked DSU slot");
            return;
        }
        if (!mDynSystem.setEnable(/* enable = */ false, /* oneShot = */ false)) {
            Log.e(TAG, "Failed to disable DynamicSystem.");

+12 −3
Original line number Diff line number Diff line
@@ -226,9 +226,7 @@ public class DynamicSystemService extends IDynamicSystemService.Stub {
        IGsiService gsiService = getGsiService();
        if (enable) {
            try {
                if (mDsuSlot == null) {
                    mDsuSlot = gsiService.getActiveDsuSlot();
                }
                getActiveDsuSlot();
                GsiServiceCallback callback = new GsiServiceCallback();
                synchronized (callback) {
                    gsiService.enableGsiAsync(oneShot, mDsuSlot, callback);
@@ -287,4 +285,15 @@ public class DynamicSystemService extends IDynamicSystemService.Stub {

        return getGsiService().suggestScratchSize();
    }

    @Override
    @EnforcePermission(android.Manifest.permission.MANAGE_DYNAMIC_SYSTEM)
    public String getActiveDsuSlot() throws RemoteException {
        super.getActiveDsuSlot_enforcePermission();

        if (mDsuSlot == null) {
            mDsuSlot = getGsiService().getActiveDsuSlot();
        }
        return mDsuSlot;
    }
}