OSDN Git Service

Setting ADB_ENABLED may result in a SecurityException.
authorGeoffrey Borggaard <geoffreyb@google.com>
Wed, 19 Nov 2014 19:22:56 +0000 (14:22 -0500)
committerGeoffrey Borggaard <geoffreyb@google.com>
Wed, 19 Nov 2014 19:26:08 +0000 (14:26 -0500)
If the restriction UserManager.DISALLOW_DEBUGGING_FEATURES is enforced,
then any attempt to set ADB_ENABLED will result in a SecurityException.
This can result in the device not being able to boot.
Bug: 18433477

Change-Id: I21e4b406ad0fa89b7d4b678eac1baf212a3c7acd

services/usb/java/com/android/server/usb/UsbDeviceManager.java

index c63eb18..23ba3b6 100644 (file)
@@ -209,8 +209,13 @@ public class UsbDeviceManager {
         mUseUsbNotification = !massStorageSupported;
 
         // make sure the ADB_ENABLED setting value matches the current state
-        Settings.Global.putInt(mContentResolver, Settings.Global.ADB_ENABLED, mAdbEnabled ? 1 : 0);
-
+        try {
+            Settings.Global.putInt(mContentResolver,
+                    Settings.Global.ADB_ENABLED, mAdbEnabled ? 1 : 0);
+        } catch (SecurityException e) {
+            // If UserManager.DISALLOW_DEBUGGING_FEATURES is on, that this setting can't be changed.
+            Slog.d(TAG, "ADB_ENABLED is restricted.");
+        }
         mHandler.sendEmptyMessage(MSG_SYSTEM_READY);
     }