Loading services/java/com/android/server/PowerManagerService.java +16 −55 Original line number Diff line number Diff line Loading @@ -2126,60 +2126,6 @@ class PowerManagerService extends IPowerManager.Stub } } private void unmountExternalStorage() { String state = Environment.getExternalStorageState(); IMountService mSvc; mSvc = IMountService.Stub.asInterface( ServiceManager.getService("mount")); if (mSvc == null) { Log.e(TAG, "MountService unavailable"); return; } if (state.equals(Environment.MEDIA_SHARED)) { /* * If the media is currently shared, unshare it. * XXX: This is still dangerous!. We should not * be rebooting at *all* if UMS is enabled, since * the UMS host could have dirty FAT cache entries * yet to flush. */ try { mSvc.setMassStorageEnabled(false); } catch (Exception e) { Log.e(TAG, "ums disable failed", e); } } else if (state.equals(Environment.MEDIA_CHECKING)) { /* * If the media is being checked, then we need to wait for * it to complete before being able to proceed. */ while (state.equals(Environment.MEDIA_CHECKING)) { state = Environment.getExternalStorageState(); try { Thread.sleep(1000); } catch (InterruptedException iex) { Log.e(TAG, "Interrupted while waiting for media", iex); break; } } } if (state.equals(Environment.MEDIA_MOUNTED)) { /* * If the media is mounted, then gracefully unmount it. */ try { String m = Environment.getExternalStorageDirectory().toString(); mSvc.unmountMedia(m); } catch (Exception e) { Log.e(TAG, "external storage unmount failed", e); } } } /** * Reboot the device immediately, passing 'reason' (may be null) * to the underlying __reboot system call. Should not return. Loading @@ -2188,7 +2134,22 @@ class PowerManagerService extends IPowerManager.Stub { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.REBOOT, null); unmountExternalStorage(); /* * Manually shutdown the MountService to ensure media is * put into a safe state. */ IMountService mSvc = IMountService.Stub.asInterface( ServiceManager.getService("mount")); if (mSvc != null) { try { mSvc.shutdown(); } catch (Exception e) { Log.e(TAG, "MountService shutdown failed", e); } } else { Log.w(TAG, "MountService unavailable for shutdown"); } try { Power.reboot(reason); Loading Loading
services/java/com/android/server/PowerManagerService.java +16 −55 Original line number Diff line number Diff line Loading @@ -2126,60 +2126,6 @@ class PowerManagerService extends IPowerManager.Stub } } private void unmountExternalStorage() { String state = Environment.getExternalStorageState(); IMountService mSvc; mSvc = IMountService.Stub.asInterface( ServiceManager.getService("mount")); if (mSvc == null) { Log.e(TAG, "MountService unavailable"); return; } if (state.equals(Environment.MEDIA_SHARED)) { /* * If the media is currently shared, unshare it. * XXX: This is still dangerous!. We should not * be rebooting at *all* if UMS is enabled, since * the UMS host could have dirty FAT cache entries * yet to flush. */ try { mSvc.setMassStorageEnabled(false); } catch (Exception e) { Log.e(TAG, "ums disable failed", e); } } else if (state.equals(Environment.MEDIA_CHECKING)) { /* * If the media is being checked, then we need to wait for * it to complete before being able to proceed. */ while (state.equals(Environment.MEDIA_CHECKING)) { state = Environment.getExternalStorageState(); try { Thread.sleep(1000); } catch (InterruptedException iex) { Log.e(TAG, "Interrupted while waiting for media", iex); break; } } } if (state.equals(Environment.MEDIA_MOUNTED)) { /* * If the media is mounted, then gracefully unmount it. */ try { String m = Environment.getExternalStorageDirectory().toString(); mSvc.unmountMedia(m); } catch (Exception e) { Log.e(TAG, "external storage unmount failed", e); } } } /** * Reboot the device immediately, passing 'reason' (may be null) * to the underlying __reboot system call. Should not return. Loading @@ -2188,7 +2134,22 @@ class PowerManagerService extends IPowerManager.Stub { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.REBOOT, null); unmountExternalStorage(); /* * Manually shutdown the MountService to ensure media is * put into a safe state. */ IMountService mSvc = IMountService.Stub.asInterface( ServiceManager.getService("mount")); if (mSvc != null) { try { mSvc.shutdown(); } catch (Exception e) { Log.e(TAG, "MountService shutdown failed", e); } } else { Log.w(TAG, "MountService unavailable for shutdown"); } try { Power.reboot(reason); Loading