Loading core/java/android/content/res/ObbScanner.java +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ public class ObbScanner { final File obbFile = new File(filePath); if (!obbFile.exists()) { throw new IllegalArgumentException("OBB file does nto exist: " + filePath); throw new IllegalArgumentException("OBB file does not exist: " + filePath); } final String canonicalFilePath = obbFile.getCanonicalPath(); Loading services/java/com/android/server/MountService.java +22 −13 Original line number Diff line number Diff line Loading @@ -1451,11 +1451,6 @@ class MountService extends IMountService.Stub mHandler.sendEmptyMessage(H_UNMOUNT_PM_DONE); } private boolean isCallerOwnerOfPackageOrSystem(String packageName) { final int callerUid = Binder.getCallingUid(); return isUidOwnerOfPackageOrSystem(packageName, callerUid); } private boolean isUidOwnerOfPackageOrSystem(String packageName, int callerUid) { if (callerUid == android.os.Process.SYSTEM_UID) { return true; Loading Loading @@ -1507,6 +1502,12 @@ class MountService extends IMountService.Stub waitForReady(); warnOnNotMounted(); if (filename == null) { throw new IllegalArgumentException("filename cannot be null"); } else if (token == null) { throw new IllegalArgumentException("token cannot be null"); } final ObbState obbState; synchronized (mObbMounts) { Loading @@ -1533,6 +1534,12 @@ class MountService extends IMountService.Stub } public void unmountObb(String filename, boolean force, IObbActionListener token) { if (filename == null) { throw new IllegalArgumentException("filename cannot be null"); } else if (token == null) { throw new IllegalArgumentException("token cannot be null"); } final ObbState obbState; synchronized (mObbMounts) { Loading @@ -1540,6 +1547,12 @@ class MountService extends IMountService.Stub throw new IllegalArgumentException("OBB is not mounted"); } obbState = mObbPathToStateMap.get(filename); if (Binder.getCallingUid() != obbState.callerUid) { throw new SecurityException("caller UID does not match original mount caller UID"); } else if (!token.asBinder().equals(obbState.token.asBinder())) { throw new SecurityException("caller does not match original mount caller"); } } UnmountObbAction action = new UnmountObbAction(obbState, force); Loading Loading @@ -1758,9 +1771,9 @@ class MountService extends IMountService.Stub } public void handleExecute() throws RemoteException, IOException { ObbInfo obbInfo = mContainerService.getObbInfo(mObbState.filename); final ObbInfo obbInfo = mContainerService.getObbInfo(mObbState.filename); if (obbInfo == null) { throw new IOException("Couldn't read OBB file"); throw new IOException("Couldn't read OBB file: " + mObbState.filename); } if (!isUidOwnerOfPackageOrSystem(obbInfo.packageName, mObbState.callerUid)) { Loading Loading @@ -1833,13 +1846,9 @@ class MountService extends IMountService.Stub } public void handleExecute() throws RemoteException, IOException { ObbInfo obbInfo = mContainerService.getObbInfo(mObbState.filename); final ObbInfo obbInfo = mContainerService.getObbInfo(mObbState.filename); if (obbInfo == null) { throw new IOException("Couldn't read OBB file"); } if (!isCallerOwnerOfPackageOrSystem(obbInfo.packageName)) { throw new IllegalArgumentException("Caller package does not match OBB file"); throw new IOException("Couldn't read OBB file: " + mObbState.filename); } int rc = StorageResultCode.OperationSucceeded; Loading Loading
core/java/android/content/res/ObbScanner.java +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ public class ObbScanner { final File obbFile = new File(filePath); if (!obbFile.exists()) { throw new IllegalArgumentException("OBB file does nto exist: " + filePath); throw new IllegalArgumentException("OBB file does not exist: " + filePath); } final String canonicalFilePath = obbFile.getCanonicalPath(); Loading
services/java/com/android/server/MountService.java +22 −13 Original line number Diff line number Diff line Loading @@ -1451,11 +1451,6 @@ class MountService extends IMountService.Stub mHandler.sendEmptyMessage(H_UNMOUNT_PM_DONE); } private boolean isCallerOwnerOfPackageOrSystem(String packageName) { final int callerUid = Binder.getCallingUid(); return isUidOwnerOfPackageOrSystem(packageName, callerUid); } private boolean isUidOwnerOfPackageOrSystem(String packageName, int callerUid) { if (callerUid == android.os.Process.SYSTEM_UID) { return true; Loading Loading @@ -1507,6 +1502,12 @@ class MountService extends IMountService.Stub waitForReady(); warnOnNotMounted(); if (filename == null) { throw new IllegalArgumentException("filename cannot be null"); } else if (token == null) { throw new IllegalArgumentException("token cannot be null"); } final ObbState obbState; synchronized (mObbMounts) { Loading @@ -1533,6 +1534,12 @@ class MountService extends IMountService.Stub } public void unmountObb(String filename, boolean force, IObbActionListener token) { if (filename == null) { throw new IllegalArgumentException("filename cannot be null"); } else if (token == null) { throw new IllegalArgumentException("token cannot be null"); } final ObbState obbState; synchronized (mObbMounts) { Loading @@ -1540,6 +1547,12 @@ class MountService extends IMountService.Stub throw new IllegalArgumentException("OBB is not mounted"); } obbState = mObbPathToStateMap.get(filename); if (Binder.getCallingUid() != obbState.callerUid) { throw new SecurityException("caller UID does not match original mount caller UID"); } else if (!token.asBinder().equals(obbState.token.asBinder())) { throw new SecurityException("caller does not match original mount caller"); } } UnmountObbAction action = new UnmountObbAction(obbState, force); Loading Loading @@ -1758,9 +1771,9 @@ class MountService extends IMountService.Stub } public void handleExecute() throws RemoteException, IOException { ObbInfo obbInfo = mContainerService.getObbInfo(mObbState.filename); final ObbInfo obbInfo = mContainerService.getObbInfo(mObbState.filename); if (obbInfo == null) { throw new IOException("Couldn't read OBB file"); throw new IOException("Couldn't read OBB file: " + mObbState.filename); } if (!isUidOwnerOfPackageOrSystem(obbInfo.packageName, mObbState.callerUid)) { Loading Loading @@ -1833,13 +1846,9 @@ class MountService extends IMountService.Stub } public void handleExecute() throws RemoteException, IOException { ObbInfo obbInfo = mContainerService.getObbInfo(mObbState.filename); final ObbInfo obbInfo = mContainerService.getObbInfo(mObbState.filename); if (obbInfo == null) { throw new IOException("Couldn't read OBB file"); } if (!isCallerOwnerOfPackageOrSystem(obbInfo.packageName)) { throw new IllegalArgumentException("Caller package does not match OBB file"); throw new IOException("Couldn't read OBB file: " + mObbState.filename); } int rc = StorageResultCode.OperationSucceeded; Loading