Loading core/java/android/os/storage/IStorageManager.aidl +1 −0 Original line number Original line Diff line number Diff line Loading @@ -190,4 +190,5 @@ interface IStorageManager { void abortIdleMaintenance() = 80; void abortIdleMaintenance() = 80; String translateAppToSystem(String path, int pid, int uid) = 81; String translateAppToSystem(String path, int pid, int uid) = 81; String translateSystemToApp(String path, int pid, int uid) = 82; String translateSystemToApp(String path, int pid, int uid) = 82; void commitChanges() = 83; } } services/core/java/com/android/server/StorageManagerService.java +13 −0 Original line number Original line Diff line number Diff line Loading @@ -2526,6 +2526,19 @@ class StorageManagerService extends IStorageManager.Stub } } } } /** * Signal that checkpointing partitions should commit changes */ @Override public void commitChanges() throws RemoteException { // Only the system process is permitted to commit checkpoints if (Binder.getCallingUid() != android.os.Process.SYSTEM_UID) { throw new SecurityException("no permission to commit checkpoint changes"); } mVold.commitChanges(); } @Override @Override public String getPassword() throws RemoteException { public String getPassword() throws RemoteException { mContext.enforceCallingOrSelfPermission(Manifest.permission.CRYPT_KEEPER, mContext.enforceCallingOrSelfPermission(Manifest.permission.CRYPT_KEEPER, Loading services/core/java/com/android/server/am/UserController.java +9 −0 Original line number Original line Diff line number Diff line Loading @@ -67,6 +67,7 @@ import android.os.IRemoteCallback; import android.os.IUserManager; import android.os.IUserManager; import android.os.Looper; import android.os.Looper; import android.os.Message; import android.os.Message; import android.os.PowerManager; import android.os.Process; import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteCallbackList; import android.os.RemoteException; import android.os.RemoteException; Loading Loading @@ -332,6 +333,14 @@ class UserController implements Handler.Callback { return; return; } } } } // Inform checkpointing systems of success try { getStorageManager().commitChanges(); } catch (Exception e) { PowerManager pm = (PowerManager) mInjector.getContext().getSystemService(Context.POWER_SERVICE); pm.reboot("Checkpoint commit failed"); } // We always walk through all the user lifecycle states to send // We always walk through all the user lifecycle states to send // consistent developer events. We step into RUNNING_LOCKED here, // consistent developer events. We step into RUNNING_LOCKED here, Loading Loading
core/java/android/os/storage/IStorageManager.aidl +1 −0 Original line number Original line Diff line number Diff line Loading @@ -190,4 +190,5 @@ interface IStorageManager { void abortIdleMaintenance() = 80; void abortIdleMaintenance() = 80; String translateAppToSystem(String path, int pid, int uid) = 81; String translateAppToSystem(String path, int pid, int uid) = 81; String translateSystemToApp(String path, int pid, int uid) = 82; String translateSystemToApp(String path, int pid, int uid) = 82; void commitChanges() = 83; } }
services/core/java/com/android/server/StorageManagerService.java +13 −0 Original line number Original line Diff line number Diff line Loading @@ -2526,6 +2526,19 @@ class StorageManagerService extends IStorageManager.Stub } } } } /** * Signal that checkpointing partitions should commit changes */ @Override public void commitChanges() throws RemoteException { // Only the system process is permitted to commit checkpoints if (Binder.getCallingUid() != android.os.Process.SYSTEM_UID) { throw new SecurityException("no permission to commit checkpoint changes"); } mVold.commitChanges(); } @Override @Override public String getPassword() throws RemoteException { public String getPassword() throws RemoteException { mContext.enforceCallingOrSelfPermission(Manifest.permission.CRYPT_KEEPER, mContext.enforceCallingOrSelfPermission(Manifest.permission.CRYPT_KEEPER, Loading
services/core/java/com/android/server/am/UserController.java +9 −0 Original line number Original line Diff line number Diff line Loading @@ -67,6 +67,7 @@ import android.os.IRemoteCallback; import android.os.IUserManager; import android.os.IUserManager; import android.os.Looper; import android.os.Looper; import android.os.Message; import android.os.Message; import android.os.PowerManager; import android.os.Process; import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteCallbackList; import android.os.RemoteException; import android.os.RemoteException; Loading Loading @@ -332,6 +333,14 @@ class UserController implements Handler.Callback { return; return; } } } } // Inform checkpointing systems of success try { getStorageManager().commitChanges(); } catch (Exception e) { PowerManager pm = (PowerManager) mInjector.getContext().getSystemService(Context.POWER_SERVICE); pm.reboot("Checkpoint commit failed"); } // We always walk through all the user lifecycle states to send // We always walk through all the user lifecycle states to send // consistent developer events. We step into RUNNING_LOCKED here, // consistent developer events. We step into RUNNING_LOCKED here, Loading