Loading data/etc/privapp-permissions-platform.xml +2 −0 Original line number Diff line number Diff line Loading @@ -424,6 +424,8 @@ applications that come with the platform <permission name="android.permission.LOCATION_HARDWARE" /> <!-- Permissions required for GTS test - GtsDialerAudioTestCases --> <permission name="android.permission.CAPTURE_AUDIO_OUTPUT" /> <!-- Permissions required for CTS test - AdbManagerTest --> <permission name="android.permission.MANAGE_DEBUGGING" /> </privapp-permissions> <privapp-permissions package="com.android.statementservice"> Loading packages/Shell/AndroidManifest.xml +3 −0 Original line number Diff line number Diff line Loading @@ -314,6 +314,9 @@ <!-- Permissions required for GTS test - GtsDialerAudioTestCases --> <uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" /> <!-- Permissions required for CTS test - AdbManagerTest --> <uses-permission android:name="android.permission.MANAGE_DEBUGGING" /> <application android:label="@string/app_label" android:theme="@android:style/Theme.DeviceDefault.DayNight" android:defaultToDeviceProtectedStorage="true" Loading services/core/java/com/android/server/adb/AdbService.java +9 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.hardware.usb.UsbManager; import android.net.Uri; import android.os.Binder; import android.os.IBinder; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.os.SystemProperties; import android.os.UserHandle; Loading Loading @@ -508,6 +509,14 @@ public class AdbService extends IAdbManager.Stub { } } @Override public int handleShellCommand(ParcelFileDescriptor in, ParcelFileDescriptor out, ParcelFileDescriptor err, String[] args) { return new AdbShellCommand(this).exec( this, in.getFileDescriptor(), out.getFileDescriptor(), err.getFileDescriptor(), args); } @Override public void dump(FileDescriptor fd, PrintWriter writer, String[] args) { if (!DumpUtils.checkDumpPermission(mContext, TAG, writer)) return; Loading services/core/java/com/android/server/adb/AdbShellCommand.java 0 → 100644 +68 −0 Original line number Diff line number Diff line /* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.server.adb; import android.os.BasicShellCommandHandler; import java.io.PrintWriter; import java.util.Objects; /** * Interprets and executes 'adb shell cmd adb [args]'. */ class AdbShellCommand extends BasicShellCommandHandler { private final AdbService mService; AdbShellCommand(AdbService service) { mService = Objects.requireNonNull(service); } @Override public int onCommand(String cmd) { if (cmd == null) { return handleDefaultCommands(null); } final PrintWriter pw = getOutPrintWriter(); switch (cmd) { case "is-wifi-supported": { pw.println(Boolean.toString(mService.isAdbWifiSupported())); return 0; } case "is-wifi-qr-supported": { pw.println(Boolean.toString(mService.isAdbWifiQrSupported())); return 0; } default: return handleDefaultCommands(cmd); } } @Override public void onHelp() { PrintWriter pw = getOutPrintWriter(); pw.println("Adb service commands:"); pw.println(" help or -h"); pw.println(" Print this help text."); pw.println(" is-wifi-supported"); pw.println(" Returns \"true\" if adb over wifi is supported."); pw.println(" is-wifi-qr-supported"); pw.println(" Returns \"true\" if adb over wifi + QR pairing is supported."); pw.println(); } } Loading
data/etc/privapp-permissions-platform.xml +2 −0 Original line number Diff line number Diff line Loading @@ -424,6 +424,8 @@ applications that come with the platform <permission name="android.permission.LOCATION_HARDWARE" /> <!-- Permissions required for GTS test - GtsDialerAudioTestCases --> <permission name="android.permission.CAPTURE_AUDIO_OUTPUT" /> <!-- Permissions required for CTS test - AdbManagerTest --> <permission name="android.permission.MANAGE_DEBUGGING" /> </privapp-permissions> <privapp-permissions package="com.android.statementservice"> Loading
packages/Shell/AndroidManifest.xml +3 −0 Original line number Diff line number Diff line Loading @@ -314,6 +314,9 @@ <!-- Permissions required for GTS test - GtsDialerAudioTestCases --> <uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" /> <!-- Permissions required for CTS test - AdbManagerTest --> <uses-permission android:name="android.permission.MANAGE_DEBUGGING" /> <application android:label="@string/app_label" android:theme="@android:style/Theme.DeviceDefault.DayNight" android:defaultToDeviceProtectedStorage="true" Loading
services/core/java/com/android/server/adb/AdbService.java +9 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.hardware.usb.UsbManager; import android.net.Uri; import android.os.Binder; import android.os.IBinder; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.os.SystemProperties; import android.os.UserHandle; Loading Loading @@ -508,6 +509,14 @@ public class AdbService extends IAdbManager.Stub { } } @Override public int handleShellCommand(ParcelFileDescriptor in, ParcelFileDescriptor out, ParcelFileDescriptor err, String[] args) { return new AdbShellCommand(this).exec( this, in.getFileDescriptor(), out.getFileDescriptor(), err.getFileDescriptor(), args); } @Override public void dump(FileDescriptor fd, PrintWriter writer, String[] args) { if (!DumpUtils.checkDumpPermission(mContext, TAG, writer)) return; Loading
services/core/java/com/android/server/adb/AdbShellCommand.java 0 → 100644 +68 −0 Original line number Diff line number Diff line /* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.server.adb; import android.os.BasicShellCommandHandler; import java.io.PrintWriter; import java.util.Objects; /** * Interprets and executes 'adb shell cmd adb [args]'. */ class AdbShellCommand extends BasicShellCommandHandler { private final AdbService mService; AdbShellCommand(AdbService service) { mService = Objects.requireNonNull(service); } @Override public int onCommand(String cmd) { if (cmd == null) { return handleDefaultCommands(null); } final PrintWriter pw = getOutPrintWriter(); switch (cmd) { case "is-wifi-supported": { pw.println(Boolean.toString(mService.isAdbWifiSupported())); return 0; } case "is-wifi-qr-supported": { pw.println(Boolean.toString(mService.isAdbWifiQrSupported())); return 0; } default: return handleDefaultCommands(cmd); } } @Override public void onHelp() { PrintWriter pw = getOutPrintWriter(); pw.println("Adb service commands:"); pw.println(" help or -h"); pw.println(" Print this help text."); pw.println(" is-wifi-supported"); pw.println(" Returns \"true\" if adb over wifi is supported."); pw.println(" is-wifi-qr-supported"); pw.println(" Returns \"true\" if adb over wifi + QR pairing is supported."); pw.println(); } }