簡體   English   中英

如何在aosp_car_x86_64-userdebug(android 11汽車模擬器)中禁用功能:android.hardware.bluetooth

[英]How to disable feature:android.hardware.bluetooth in aosp_car_x86_64-userdebug (android 11 automotive emulator)

我想為 android 汽車模擬器 11 禁用功能:android.hardware.bluetooth

我與 repo 同步的版本:android-11.0.0_r3 我午餐的版本:aosp_car_x86_64-userdebug

更改文件以注釋掉權限:

汽車.mk

#    frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml \
#    frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \

評論權限:

car_core_hardware.xml

<!--    <feature name="android.hardware.bluetooth" /> -->

如果我運行模擬器並詢問包管理器,它仍然確信啟用了藍牙功能:

pm list features
feature:android.hardware.bluetooth
feature:android.hardware.bluetooth_le

當我從out文件夾中刪除文件 (android.hardware.bluetooth.xml) 時,它被禁用了。 問題是汽車無法處理這種禁用,因為它開始崩潰:

01-07 15:12:08.833  8509  8509 D PerUserCarService: onCreate()
01-07 15:12:08.834  8509  8509 E BluetoothAdapter: Bluetooth binder is null
01-07 15:12:08.835  8509  8509 D AndroidRuntime: Shutting down VM
01-07 15:12:08.835  8509  8509 E AndroidRuntime: FATAL EXCEPTION: main
01-07 15:12:08.835  8509  8509 E AndroidRuntime: Process: com.android.car, PID: 8509
01-07 15:12:08.835  8509  8509 E AndroidRuntime: java.lang.RuntimeException: Unable to create service com.android.car.PerUserCarService: java.lang.NullPointerException: Bluetooth adapter cannot be null
01-07 15:12:08.835  8509  8509 E AndroidRuntime:    at android.app.ActivityThread.handleCreateService(ActivityThread.java:4204)
01-07 15:12:08.835  8509  8509 E AndroidRuntime:    at android.app.ActivityThread.access$1500(ActivityThread.java:237)
01-07 15:12:08.835  8509  8509 E AndroidRuntime:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
01-07 15:12:08.835  8509  8509 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:106)
01-07 15:12:08.835  8509  8509 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:223)
01-07 15:12:08.835  8509  8509 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:7656)
01-07 15:12:08.835  8509  8509 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
01-07 15:12:08.835  8509  8509 E AndroidRuntime:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
01-07 15:12:08.835  8509  8509 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
01-07 15:12:08.835  8509  8509 E AndroidRuntime: Caused by: java.lang.NullPointerException: Bluetooth adapter cannot be null
01-07 15:12:08.835  8509  8509 E AndroidRuntime:    at java.util.Objects.requireNonNull(Objects.java:245)
01-07 15:12:08.835  8509  8509 E AndroidRuntime:    at com.android.car.CarBluetoothUserService.<init>(CarBluetoothUserService.java:84)
01-07 15:12:08.835  8509  8509 E AndroidRuntime:    at com.android.car.PerUserCarService.onCreate(PerUserCarService.java:66)
01-07 15:12:08.835  8509  8509 E AndroidRuntime:    at android.app.ActivityThread.handleCreateService(ActivityThread.java:4192)

android.hardware.bluetooth.xml可能已經從設備構建配置中的其他一些.mk文件中溜走(它可能被多次復制到 /etc/permissions)。 嘗試將其從正在運行的設備中刪除:

adb root && adb remount && adb reboot
adb root && adb remount
export BT=etc/permissions/android.hardware.bluetooth.xml
adb shell rm /$BT /*/$BT /*/*/$BT
export BT=etc/permissions/android.hardware.bluetooth_le.xml
adb shell rm /$BT /*/$BT /*/*/$BT
adb reboot
adb shell pm list features | grep blue

對我來說,它刪除了android.hardware.bluetooth_le但沒有刪除android.hardware.bluetooth功能。 后者在編輯您提到的<target type>_core_hardware.xml文件后消失了。

在驗證刪除 xml 文件是否有幫助后,您需要查看設備可能用於跟蹤復制位置的所有 mk 文件(使用PRODUCT_COPY_FILES )。 每次嘗試后,查看$OUT目錄的內容(您可能需要在構建之前從輸出中手動刪除 xml 文件,構建系統並不總是干凈地執行此操作)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM