Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5ab3aa0c authored by Joshua Duong's avatar Joshua Duong Committed by Android (Google) Code Review
Browse files

Merge changes from topic "adbwifi-cts" into rvc-dev

* changes:
  Add shell commands for AdbService.
  Add shell permissions for CTS test (AdbManagerTest).
parents 436719f1 3eb00f14
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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">
+3 −0
Original line number Diff line number Diff line
@@ -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"
+9 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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;
+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();
    }
}