Thiết lập quyền truy cập từ xa

Android 14 ra mắt tính năng truy cập từ xa mới, cho phép các đối tác đánh thức Android từ xa trong xe để thực hiện các tác vụ cụ thể. Ví dụ: để thực thi Chế độ nhà để xe qua đêm để áp dụng các bản cập nhật phần mềm. Bạn cần có nhiều thành phần không phải Android cho quy trình làm việc toàn diện. Android không xác định hoặc cung cấp hoạt động triển khai cho các thành phần không phải Android (bạn phải chịu trách nhiệm này).

Để tìm hiểu thêm, hãy xem các phần sau:

Kiến trúc

Nội dung sau đây giả định rằng bạn sử dụng cấu trúc mẫu sau đây. Đây là cấu trúc giả định và có thể không phản ánh cấu trúc thực tế. Các OEM nên điều chỉnh việc triển khai thực tế cho phù hợp với cấu trúc xe và máy chủ của họ.

hình ảnh

Hình 1. Kiến trúc mẫu.

Cấu trúc mẫu bao gồm các thành phần phần cứng sau:

Thành phần phần cứng Mô tả
Bộ xử lý ứng dụng Bộ xử lý chạy Android. Android có thể chạy trên bộ nhớ ảo (VM) (không phải trên phần cứng thực tế) trên bộ xử lý này.
Bộ xử lý xe Bộ xử lý chịu trách nhiệm kiểm soát nguồn cho bộ xử lý ứng dụng.
Bộ điều khiển viễn tin học (TCU) Bộ xử lý trong xe luôn có khả năng nhận tin nhắn từ xa từ đám mây. TCU được giả định là luôn ở chế độ bật hoặc chế độ tiết kiệm pin. Sử dụng tin nhắn từ xa để kích hoạt TCU.
Máy chủ đánh thức Một máy chủ từ xa chạy trên đám mây và chịu trách nhiệm giao tiếp với TCU trong xe để đưa ra các lệnh đánh thức.
Máy chủ tác vụ từ xa Máy chủ tác vụ từ xa chạy trên đám mây, tương tác với mọi người và quản lý các tác vụ từ xa.

Kiến trúc mẫu bao gồm các thành phần phần mềm này, tất cả đều chạy trên Android:

Thành phần phần mềm trên Android Mô tả
Dịch vụ xe hơi Dịch vụ khung AAOS cung cấp các API truy cập từ xa.
Ứng dụng tác vụ từ xa Một lớp Service do nhà cung cấp viết, thực thi các tác vụ từ xa. Một hệ thống Android có thể chạy nhiều ứng dụng khách tác vụ từ xa.
HAL truy cập từ xa Phải được triển khai để truy cập từ xa.
Lớp trừu tượng để giao tiếp giữa AAOS và một thành phần không phải Android, chẳng hạn như TCU.

Các thành phần phần mềm không phải Android được mô tả dưới đây:

Thành phần phần mềm không phải Android Mô tả
Ứng dụng đánh thức Phần mềm chạy trên TCU duy trì kết nối lâu dài với máy chủ đánh thức. Nó cũng duy trì kết nối với HAL Truy cập từ xa để gửi các tác vụ từ xa đến Dịch vụ ô tô.
Triển khai máy chủ đánh thức Máy chủ giao tiếp với ứng dụng đánh thức đang chạy trên TCU. Có thể gửi yêu cầu đánh thức đến ứng dụng đánh thức.
Triển khai máy chủ tác vụ từ xa Máy chủ quản lý các tác vụ từ xa. Người dùng tương tác với máy chủ này để phát hành và giám sát các tác vụ từ xa.

Luồng công việc

Phần này liệt kê các bước trong một quy trình mẫu.

Quy trình làm việc mẫu

Quy trình chi tiết có thể giống như sau:

  1. Người dùng đỗ xe trong gara.

  2. Đối tác muốn cập nhật xe qua đêm khi không có khả năng xảy ra hoạt động tương tác với xe.

  3. Máy chủ đám mây của đối tác gửi một tác vụ từ xa cập nhật hệ thống đến xe. Cụ thể là bộ điều khiển đo từ xa (TCU).

  4. TCU của xe sẽ kích hoạt bộ điều khiển điện tử (ECU) Android và một dịch vụ của OEM sẽ kích hoạt chế độ Garage.

  5. Android chạy Chế độ nhà để xe để tải xuống và cài đặt các bản cập nhật thông qua Google Play.

  6. Sau khi áp dụng bản cập nhật, Android sẽ đánh dấu tác vụ là đã hoàn tất và kết thúc kết nối hoặc đạt đến thời gian chờ đã chỉ định.

Quy trình làm việc chi tiết

Có 2 bước quan trọng cần thiết để truy cập từ xa. Thứ nhất là đăng ký ứng dụng, tức là liên kết một người dùng cụ thể với một ứng dụng tác vụ từ xa cụ thể đang chạy trên một chiếc xe cụ thể. Thao tác còn lại là gửi một tác vụ, tức là gửi tác vụ từ xa cho một người dùng cụ thể đến ứng dụng tác vụ từ xa cụ thể đang chạy trên một chiếc xe cụ thể.

Đăng ký ứng dụng khách

Để sử dụng tính năng truy cập từ xa, người dùng phải mở ứng dụng máy khách tác vụ từ xa ít nhất một lần và hoàn tất quy trình đăng ký máy khách (văn bản in đậm cho biết các tác vụ do AAOS triển khai):

  1. Khi khởi động, Car Service sẽ lấy thông tin về xe từ HAL truy cập từ xa.

  2. Khi khởi động, Dịch vụ ô tô sẽ khởi chạy tất cả ứng dụng khách tác vụ từ xa dựa trên bộ lọc ý định và quyền.

  3. Khi bắt đầu, ứng dụng khách tác vụ từ xa sẽ tự đăng ký với Dịch vụ ô tô.

  4. Car Service thông báo cho ứng dụng khách tác vụ từ xa về thông tin đăng ký, bao gồm cả mã nhận dạng xe và mã nhận dạng ứng dụng khách. Mã ứng dụng khách là mã nhận dạng riêng biệt và do Dịch vụ ô tô chỉ định cho ứng dụng khách này. Mã này đảm bảo là duy nhất trong số tất cả các ứng dụng khách của tác vụ từ xa trên cùng một xe.

  5. Người dùng đăng nhập vào máy chủ tác vụ từ xa thông qua ứng dụng tác vụ từ xa và bật tính năng truy cập từ xa cho xe này. Bước này thường liên quan đến việc xác thực thông qua máy chủ tác vụ từ xa.

  6. Ứng dụng khách của tác vụ từ xa tải thông tin của người dùng lên cùng với mã nhận dạng xe và mã ứng dụng khách lên máy chủ tác vụ từ xa, đồng thời yêu cầu máy chủ liên kết người dùng với ứng dụng khách cụ thể này và xe cụ thể này.

    Bước này có thể bao gồm thêm bước xác thực hai yếu tố của người dùng (không bắt buộc).

    Máy chủ tác vụ từ xa phải xác thực rằng mã nhận dạng xe được cung cấp trong yêu cầu khớp với mã nhận dạng xe của người gửi. Bạn có thể thực hiện việc này thông qua chứng thực xe.

Trừ phi bạn đặt lại về trạng thái ban đầu, nếu không, bạn chỉ cần thực hiện quy trình đăng ký ứng dụng một lần cho mỗi người dùng trên mỗi xe. Mã nhận dạng ứng dụng được lưu trữ cục bộ trong Dịch vụ trên ô tô và vẫn giữ nguyên cho cùng một ứng dụng.

hình ảnh

Hình 2. Đăng ký một ứng dụng khách.

Huỷ đăng ký ứng dụng

Người dùng có thể huỷ liên kết xe với tài khoản của họ trên xe hoặc trên máy chủ tác vụ từ xa:

  • Trên xe, người dùng có thể mở ứng dụng khách của tác vụ từ xa và đưa ra yêu cầu huỷ liên kết để huỷ liên kết xe này với các tài khoản người dùng đã liên kết trước đó.

  • Trên máy chủ tác vụ từ xa, người dùng có thể đăng nhập vào tài khoản của mình và huỷ liên kết một chiếc xe đã liên kết trước đó khỏi tài khoản này.

Nếu người dùng huỷ liên kết xe với tài khoản của họ, máy chủ tác vụ từ xa phải xoá ánh xạ đã lưu trữ cho người dùng cụ thể.

Phân phối việc cần làm

Trên đám mây:

  1. Người dùng sử dụng máy chủ tác vụ từ xa để gửi một tác vụ từ xa đến một chiếc xe cụ thể.

  2. Máy chủ tác vụ từ xa liên kết mã nhận dạng người dùng với mã nhận dạng xe và mã nhận dạng ứng dụng. Nó gửi dữ liệu tác vụ, mã nhận dạng xe và mã ứng dụng đến máy chủ đánh thức.

  3. Máy chủ đánh thức tìm TCU cụ thể cho mã nhận dạng xe (giả sử đã hoàn tất quy trình đăng ký TCU) và gửi dữ liệu tác vụ cũng như mã nhận dạng ứng dụng đến TCU.

Trên xe (văn bản in đậm cho biết các tác vụ do AAOS thực hiện):

  1. TCU nhận các tác vụ từ xa từ máy chủ từ xa.

  2. Nếu bộ xử lý ứng dụng (AP) đang chạy AAOS ở trạng thái tắt, thì TCU sẽ dùng bộ xử lý xe (VP) để đánh thức AP.

  3. Car Service nhận các tác vụ từ TCU.

  4. Car Service phân phối các tác vụ đến ứng dụng tác vụ từ xa tương ứng.

  5. Ứng dụng tác vụ từ xa nhận và thực thi tác vụ.

    (Không bắt buộc) Ứng dụng khách của tác vụ từ xa liên hệ với máy chủ tác vụ để biết thêm thông tin chi tiết về tác vụ và thực thi tác vụ.

  6. (Không bắt buộc) Dịch vụ máy khách của tác vụ từ xa báo cáo kết quả tác vụ cho máy chủ tác vụ.

  7. Ứng dụng khách tác vụ từ xa sẽ thông báo cho Car Service khi tác vụ hoàn tất.

  8. Nếu cần, Dịch vụ ô tô sẽ khôi phục trạng thái nguồn của xe.

hình ảnh

Hình 3. Giao việc cần làm.

Viết một ứng dụng khách cho tác vụ từ xa

CarRemoteAccessManager cung cấp API cho các tính năng truy cập từ xa. Để tìm hiểu thêm, hãy xem CarRemoteAccessManager. Ứng dụng tác vụ từ xa là một dịch vụ Android thực thi các tác vụ từ xa và sử dụng CarRemoteAccessManager. Điều này yêu cầu PERMISSION_USE_REMOTE_ACCESSPERMISSION_CONTROL_REMOTE_ACCESS, đồng thời phải khai báo một bộ lọc ý định cho RemoteTaskClientService, chẳng hạn như:

<service android:name=".remoteaccess.RemoteTaskClientService"
         android:directBootAware="true"
         android:exported="true">
    <intent-filter>
       <action android:name="android.car.remoteaccess.RemoteTaskClientService" />
    </intent-filter>
</service>

Ứng dụng khách tác vụ từ xa phải tự đăng ký với Dịch vụ ô tô trong quá trình tạo:

public final class RemoteTaskClientService extends Service {
    @Override
    public void onCreate() {
        // mCar = Car.createCar()...
        mRemoteAccessManager = (CarRemoteAccessManager)
            mcar.getCarManager(Car.CAR_REMOTE_ACCESS_SERVICE);
        if (mRemoteAccessManager == null) {
            // Remote access feature is not supported.
            return;
        }
        mRemoteAccessManager.setRemoteTaskClient(executor, mRemoteTaskClient);
    }
}

Bạn phải ghi đè hàm onBind để trả về giá trị rỗng.

@Override
public IBinder onBind(Intent intent) {
    return null;
}

Car Service quản lý vòng đời của chính nó. Car Service liên kết với dịch vụ này trong quá trình khởi động và khi có một tác vụ từ xa xuất hiện. Car Service sẽ huỷ liên kết với dịch vụ này khi tác vụ hoàn tất. Để tìm hiểu thêm, hãy xem bài viết Quản lý vòng đời của một dịch vụ.

Ứng dụng máy khách tác vụ từ xa chạy dưới dạng người dùng hệ thống nên không có quyền truy cập vào bất kỳ dữ liệu nào dành riêng cho người dùng.

Ví dụ sau đây cho thấy cách xử lý các lệnh gọi lại đã đăng ký:

private final class RemoteTaskClient
    implements CarRemoteAccessManager.RemoteTaskClientCallback {
    @Override
    public void onRegistrationUpdated(
        RemoteTaskClientRegistrationInfo info) {
        // Register to remote task server using info.
    }
    @Override
    public void onRemoteTaskRequested(String taskId,
        byte[] data, int remainingTimeSec) {
        // Parses the data and execute the task.
        // Report task result to remote task server.
        mRemoteAccessManager.reportRemoteTaskDone(taskId);
    }
    @Override
    public void onShutdownStarting(CompleteableRemoteTaskFuture future) {
        // Stop the executing task.
        // Clear the pending task queue.
        future.complete();
    }
}

Triển khai nhà cung cấp

Tính năng truy cập từ xa là không bắt buộc và bị tắt theo mặc định. Để bật tính năng này, hãy thêm một RRO như sau:

// res/xml/overlays.xml
<?xml version="1.0" encoding="utf-8"?>
<overlay>
    <item target="array/config_allowed_optional_car_features" value="@array/config_allowed_optional_car_features" />
</overlay>

// res/values/config.xml
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string-array translatable="false" name="config_allowed_optional_car_features">
        <item>car_remote_access_service</item>
    </string-array>
</resources>

// Android.bp
runtime_resource_overlay {
    name: "RemoteAccessOverlay",
    resource_dirs: ["res"],
    manifest: "AndroidManifest.xml",
    sdk_version: "current",
    product_specific: true
}

Hoặc sử dụng lệnh adb sau trên bản dựng userdebug/eng:

adb shell cmd car_service enable-feature car_remote_access_service

Yêu cầu đối với Android

HAL truy cập từ xa

Lớp trừu tượng phần cứng (HAL) truy cập từ xa là một lớp trừu tượng do nhà cung cấp triển khai để giao tiếp giữa AAOS và một ECU khác (ví dụ: TCU). Đây là yêu cầu bắt buộc để hỗ trợ tính năng truy cập từ xa. Bạn không cần triển khai nếu tính năng truy cập từ xa chưa được triển khai.

Giao diện này được xác định tại IRemoteAccess.aidl và bao gồm các phương thức sau:

Lớp Mô tả
String getVehicleId() Lấy một mã nhận dạng riêng biệt của xe mà máy chủ đánh thức có thể nhận dạng.
String getWakeupServiceName() Lấy tên của máy chủ đánh thức từ xa.
String getProcessorId() Nhận một mã nhận dạng duy nhất của bộ xử lý mà ứng dụng có thể nhận ra bằng cách đánh thức ứng dụng.
void setRemoteTaskCallback(IRemoteTaskCallback callback)

Đặt một lệnh gọi lại sẽ được gọi khi có yêu cầu về một tác vụ từ xa.

void clearRemoteTaskCallback() Xoá một lệnh gọi lại tác vụ từ xa đã đặt trước đó.
void notifyApStateChange(in ApState state)

Phát hiện xem trình xử lý ứng dụng đã sẵn sàng nhận các tác vụ từ xa hay chưa.

Giao diện gọi lại được xác định tại IRemoteTaskCallback.aid.

Lớp Mô tả
oneway void onRemoteTaskRequested(String clientId, in byte[] data)

Một lệnh gọi lại được gọi khi có yêu cầu về một tác vụ từ xa.

Hãy xem quá trình triển khai tham chiếu bằng TCU bên ngoài. Quá trình triển khai sử dụng một luồng đọc có thời gian tồn tại lâu để nhận các tác vụ từ xa và hỗ trợ lệnh debug sau đây:

dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default

HAL của phương tiện

Để hỗ trợ tính năng truy cập từ xa, VHAL phải hỗ trợ các thuộc tính sau:

Lớp Mô tả
SHUTDOWN_REQUEST Yêu cầu tắt đầu phát trung tâm.
VEHICLE_IN_USE
  • Phát hiện xem xe có đang được sử dụng hay không.
  • Sau khi người dùng mở khoá xe hoặc khi người dùng đến gần xe. Phải là true.
  • Một khoảng thời gian cụ thể sau khi người dùng tắt xe hoặc khi người dùng khoá xe. Phải là false.
  • Khi true, AAOS sẽ không cố gắng tắt xe khi hoàn tất tác vụ từ xa.

Để tìm hiểu thêm, hãy xem phần Các thuộc tính hệ thống được hỗ trợ.

Chế độ im lặng

Chế độ im lặng phải được hỗ trợ cho tính năng truy cập từ xa để xe có thể khởi động ở chế độ im lặng nhằm thực hiện các tác vụ từ xa khi không có người dùng. Ở chế độ im lặng, thiết bị AAOS sẽ khởi động mà màn hình và âm thanh ở trạng thái tắt.

Chế độ im lặng được kiểm soát thông qua 2 tệp sysfs của nhân Linux.

Lớp Mô tả
/sys/kernel/silent_boot/pm_silentmode_kernel_state

Biểu thị chế độ im lặng hiện tại.

/sys/kernel/silent_boot/pm_silentmode_hw_state

Biểu thị tín hiệu phần cứng để đặt chế độ im lặng mới.

Bộ xử lý xe gửi tín hiệu HW đến Android SoC để bật/tắt Chế độ im lặng. Tín hiệu (0 hoặc 1) được ghi vào /sys/kernel/silent_boot/pm_silentmode_hw_state. Sau đó, khung AAOS sẽ cập nhật /sys/kernel/silent_boot/pm_silentmode_kernel_state cho phù hợp, đại diện cho chế độ Im lặng hiện tại. Các mô-đun AAOS kiểm tra /sys/kernel/silent_boot/pm_silentmode_kernel_state để biết hệ thống có đang ở Chế độ im lặng hay không.

Khi nhận được một tác vụ từ xa và AAOS khởi động, bộ xử lý trên xe sẽ đặt Chế độ im lặng và khởi động AAOS để hệ thống khởi động khi màn hình/âm thanh ở trạng thái tắt.

Các thành phần không phải Android trên xe

Bộ xử lý xe

Bộ xử lý xe là bộ xử lý trong xe, có thể kiểm soát nguồn cho bộ xử lý ứng dụng chạy Android. Trong cấu trúc ví dụ, TCU sẽ đánh thức bộ xử lý ứng dụng bằng cách gửi tín hiệu đến bộ xử lý xe.

Các thành phần không phải Android trên xe

TCU của xe luôn có thể nhận được tin nhắn từ xa.

Ứng dụng khách đánh thức chạy trên TCU để đảm bảo kết nối lâu dài với máy chủ đánh thức từ xa.

AAOS chạy trên AP có thể giao tiếp với ứng dụng khách đánh thức chạy trên TCU thông qua HAL truy cập từ xa.

hình ảnh

Hình 4. TCU (ứng dụng báo thức).

Thành phần trên đám mây

Máy chủ đánh thức

Máy chủ đánh thức giao tiếp với ứng dụng đánh thức trên TCU để:

  • Duy trì kết nối lâu dài với TCU của xe.
  • Tìm một TCU cụ thể dựa trên mã nhận dạng xe.
  • Báo cáo trạng thái của xe. Ví dụ: trực tuyến hoặc ngoại tuyến, hoặc thời gian trực tuyến gần đây nhất đến máy chủ tác vụ từ xa.

Trong quá trình triển khai thực tế, bạn có thể hợp nhất máy chủ đánh thức với máy chủ tác vụ từ xa.

Máy chủ tác vụ từ xa

Máy chủ tác vụ từ xa quản lý các tác vụ từ xa này.

  • Người dùng tương tác với máy chủ để bắt đầu các tác vụ từ xa mới và theo dõi các tác vụ từ xa.

  • Sử dụng máy chủ đánh thức từ xa để đánh thức bộ xử lý ứng dụng trong xe.

  • Tương tác với ứng dụng khách của tác vụ từ xa đang chạy trên xe.

  • Lưu trữ thông tin đăng ký của ứng dụng khách. Thao tác này liên kết một người dùng cụ thể với một ứng dụng máy khách tác vụ từ xa cụ thể trên một chiếc xe cụ thể.

Thông thường, dữ liệu tác vụ được gửi qua máy chủ tác vụ từ xa đến máy chủ đánh thức, đến TCU của xe và cuối cùng là đến ứng dụng tác vụ từ xa chỉ đơn giản là một mã nhận dạng tác vụ. Ứng dụng từ xa sử dụng mã nhận dạng tác vụ để tìm nạp thông tin chi tiết từ máy chủ tác vụ từ xa.

Các yêu cầu về quyền riêng tư và bảo mật

Việc cần làm Điều kiện Yêu cầu
TCU (wake-up client) MUST
  • Xác thực máy chủ đánh thức.
  • Tin tưởng mã này.
Máy chủ đánh thức MUST
  • Chỉ cho phép các máy chủ tác vụ từ xa có trong danh sách cho phép kết nối.
  • Xác thực ứng dụng đánh thức.
  • Chỉ gửi thông báo đánh thức đến xe mục tiêu.
Ứng dụng tác vụ từ xa MUST
  • Xác thực người dùng trong quá trình đăng ký.
  • Xác thực máy chủ tác vụ từ xa.
  • Đáp ứng mọi yêu cầu về bảo mật đối với một dịch vụ Android. Ví dụ: quyền bị hạn chế.
Máy chủ tác vụ từ xa MUST
  • Phải xác thực máy chủ đánh thức.
  • Cung cấp chứng thực xe. Tức là xác thực rằng mã nhận dạng xe được cung cấp trong yêu cầu khớp với mã nhận dạng xe của người gửi. Nếu không thể chứng thực xe, bạn phải sử dụng các phương tiện khác để xác minh rằng người dùng hiện đang sở hữu xe.
  • Xác thực danh tính của người dùng.
  • Đáp ứng mọi yêu cầu về bảo mật đối với một máy chủ xử lý thông tin người dùng.

Đặt lại về trạng thái ban đầu và chuyển quyền sở hữu

Nếu người dùng đặt lại thiết bị về trạng thái ban đầu, thì mã ứng dụng khách được lưu trữ trong Dịch vụ ô tô sẽ bị xoá. Tuy nhiên, các máy chủ (máy chủ tác vụ từ xa và máy chủ đánh thức từ xa) không được thông báo. Các máy chủ giữ lại mối liên kết từ mã nhận dạng ứng dụng đã hết hạn đến xe. Do đó, nếu người dùng bắt đầu một tác vụ từ xa mới cho xe, thì tác vụ đó sẽ sử dụng mã nhận dạng ứng dụng khách đã hết hạn. Xe được đánh thức, nhưng không thể thực thi tác vụ từ xa vì ứng dụng khách tác vụ từ xa có một mã ứng dụng khách khác không khớp.

Sau đây mô tả một cách triển khai có thể để đặt lại về trạng thái ban đầu.

Khi người dùng thực hiện thao tác đặt lại về trạng thái ban đầu, nhà cung cấp sẽ nhắc người dùng đăng nhập vào máy chủ tác vụ từ xa và huỷ liên kết xe với tài khoản của họ nếu người dùng đã liên kết xe trước đó. Không đảm bảo rằng thiết bị có quyền truy cập vào mạng trong thời gian đặt lại về trạng thái ban đầu. Do đó, việc đưa ra yêu cầu huỷ liên kết tại thời điểm đặt lại thiết bị về trạng thái ban đầu có thể không thực hiện được.

Bất cứ khi nào quyền sở hữu xe được chuyển nhượng, bạn nên thực hiện một số thao tác để đảm bảo chủ sở hữu trước đó không thể phát hành các tác vụ từ xa cho xe nữa. Ví dụ: chủ sở hữu mới có thể được yêu cầu:

  • Đặt lại về trạng thái ban đầu Điều này đảm bảo mã ứng dụng khách được tạo lại. Sau bước này, chủ sở hữu trước vẫn có thể đánh thức xe nhưng không thể thực hiện các thao tác từ xa nữa.

  • Mở ứng dụng khách của tác vụ từ xa và làm theo quy trình Huỷ đăng ký khách hàng để huỷ liên kết xe với tài khoản của chủ sở hữu trước. Chủ sở hữu mới có thể làm theo quy trình đăng ký khách hàng để liên kết xe với tài khoản của họ và thay thế tài khoản đã liên kết trước đó.

  • Chủ sở hữu mới có thể sử dụng quy trình Đăng ký khách hàng để liên kết xe với tài khoản của họ và thay thế tài khoản đã liên kết trước đó.

Kiểm thử ứng dụng công việc từ xa

Chúng tôi cung cấp thư mục HAL truy cập từ xa tham chiếu default để kiểm thử các ứng dụng khách tác vụ từ xa. Bạn có thể dùng lệnh debug sau đây để chèn một tác vụ từ xa giả vào HAL. Tác vụ này sẽ được chuyển tiếp đến ứng dụng khách tác vụ từ xa nếu bạn cung cấp mã ứng dụng khách chính xác. Bạn có thể lấy mã nhận dạng ứng dụng bằng cách ghi nhật ký thông tin đăng ký trong quá trình triển khai ứng dụng tác vụ từ xa.

adb root && adb shell dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default --inject-task [clientID] [taskData]