Merge "Ignore the reboot to normal intent when DSU is locked"
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -145,4 +145,10 @@ interface IDynamicSystemService
|
||||
*/
|
||||
@EnforcePermission("MANAGE_DYNAMIC_SYSTEM")
|
||||
long suggestScratchSize();
|
||||
|
||||
/**
|
||||
* Get the active DSU slot
|
||||
*/
|
||||
@EnforcePermission("MANAGE_DYNAMIC_SYSTEM")
|
||||
String getActiveDsuSlot();
|
||||
}
|
||||
|
||||
@@ -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.");
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user