seo网站编辑是做什么的,济南教育论坛网站建设,网站上传 空间 数据库,台州服务网站平台
RK3588 Android 12
Android 调试桥 (adb) Android 调试桥 (adb) 是一种功能多样的命令行工具#xff0c;可让您与设备进行通信。adb 命令可用于执行各种设备操作#xff0c;例如安装和调试应用。adb 提供对 Unix shell#xff08;可用来在设备上运行各种命令 Android 12
Android 调试桥 (adb) Android 调试桥 (adb) 是一种功能多样的命令行工具可让您与设备进行通信。adb 命令可用于执行各种设备操作例如安装和调试应用。adb 提供对 Unix shell可用来在设备上运行各种命令的访问权限。它是一种客户端-服务器程序包括以下三个组件
客户端用于发送命令。客户端在开发机器上运行。您可以通过发出 adb 命令从命令行终端调用客户端。守护程序 (adbd)用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。服务器用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。
AndroidStudio 中显示的设备名称 第一个 rockchip 来自系统属性: ro.product.product.manufacturer 第二个一般是ro.product.model PS 如果 manufacturer 和 model 一样, 那么会只显示一个的值.
ADB使能和控制USB调试
ADB调试的开关: 系统属性persist.sys.usb.config值里是否包含adb 系统设置数据库Settings.Global.ADB_ENABLED值是否为非0 frameworks/base/services/core/java/com/android/server/adb/AdbService.java private static final String USB_PERSISTENT_CONFIG_PROPERTY persist.sys.usb.config;private void initAdbState() {try {/** Use the normal bootmode persistent prop to maintain state of adb across* all boot modes.*/mIsAdbUsbEnabled containsFunction(SystemProperties.get(USB_PERSISTENT_CONFIG_PROPERTY, ),UsbManager.USB_FUNCTION_ADB);mIsAdbWifiEnabled 1.equals(SystemProperties.get(WIFI_PERSISTENT_CONFIG_PROPERTY, 0));// register observer to listen for settings changesmObserver new AdbSettingsObserver();mContentResolver.registerContentObserver(Settings.Global.getUriFor(Settings.Global.ADB_ENABLED),false, mObserver);mContentResolver.registerContentObserver(Settings.Global.getUriFor(Settings.Global.ADB_WIFI_ENABLED),false, mObserver);} catch (Exception e) {Slog.e(TAG, Error in initAdbState, e);}}private void setAdbEnabled(boolean enable, byte transportType) {if (DEBUG) {Slog.d(TAG, setAdbEnabled( enable ), mIsAdbUsbEnabled mIsAdbUsbEnabled , mIsAdbWifiEnabled mIsAdbWifiEnabled , transportType transportType);}if (transportType AdbTransportType.USB enable ! mIsAdbUsbEnabled) {mIsAdbUsbEnabled enable;} else if (transportType AdbTransportType.WIFI enable ! mIsAdbWifiEnabled) {mIsAdbWifiEnabled enable;if (mIsAdbWifiEnabled) {if (!AdbProperties.secure().orElse(false) mDebuggingManager null) {// Start adbd. If this is secure adb, then we defer enabling adb over WiFi.SystemProperties.set(WIFI_PERSISTENT_CONFIG_PROPERTY, 1);mConnectionPortPoller new AdbDebuggingManager.AdbConnectionPortPoller(mPortListener);mConnectionPortPoller.start();}} else {// Stop adb over WiFi.SystemProperties.set(WIFI_PERSISTENT_CONFIG_PROPERTY, 0);if (mConnectionPortPoller ! null) {mConnectionPortPoller.cancelAndWait();mConnectionPortPoller null;}}} else {// No changereturn;}if (enable) {startAdbd();} else {stopAdbd();}for (IAdbTransport transport : mTransports.values()) {try {transport.onAdbEnabled(enable, transportType);} catch (RemoteException e) {Slog.w(TAG, Unable to send onAdbEnabled to transport transport.toString());}}if (mDebuggingManager ! null) {mDebuggingManager.setAdbEnabled(enable, transportType);}}private void startAdbd() {SystemProperties.set(CTL_START, ADBD);}private void stopAdbd() {if (!mIsAdbUsbEnabled !mIsAdbWifiEnabled) {SystemProperties.set(CTL_STOP, ADBD);}}使用设置系统属性ctl.start启动和ctl.stop停止adbd服务
增加系统控制是否启用USB调试 packages/modules/adb/daemon/main.cpp int adbd_main(int server_port) {umask(0);signal(SIGPIPE, SIG_IGN);
//.....
#if defined(__ANDROID__)bool adb_usb_on android::base::GetBoolProperty(persist.adb.adb_usb, false);if (access(USB_FFS_ADB_EP0, F_OK) 0 adb_usb_on) {// Listen on USB.usb_init();is_usb true;}
#endif
修改系统属性后, 重启adbd服务生效.
默认网络ADB调试端口 系统属性service.adb.tcp.port
修改 packages/modules/adb/daemon/main.cpp 需注意, 可能导致烧录后不能启动, 卡在下面LOG:
emmc_point is /dev/block/mmcblk0
sd_point is (null)
sd_point_2 is (null)
read cmdline
I:Boot command: boot-recovery
I:Got 2 arguments from boot message
ensure_path_mounted path/cache/recovery/last_locale
I:[libfs_mgr]superblock s_max_mnt_count:65535,/dev/block/by-name/cache
I:[libfs_mgr]__mount(source/dev/block/by-name/cache,target/cache,typeext4)0: Success
Loading make_device from librecovery_ui_ext.so
W:Failed to read max brightness: No such file or directory
I:Screensaver disablederasing_text: zh (81 x 38 5031)no_command_text: zh (111 x 38 5031)error_text: zh (65 x 38 5031)
W:Failed to load bitmap cancel_wipe_data_text for locale zh-Hans-CN (error -1). Falling back to use default locale.
E:Failed to load bitmap cancel_wipe_data_text for locale en-US (error -1)
W:Failed to load bitmap factory_data_reset_text for locale zh-Hans-CN (error -1). Falling back to use default locale.
E:Failed to load bitmap factory_data_reset_text for locale en-US (error -1)
W:Failed to load bitmap try_again_text for locale zh-Hans-CN (error -1). Falling back to use default locale.
E:Failed to load bitmap try_again_text for locale en-US (error -1)
W:Failed to load bitmap wipe_data_confirmation_text for locale zh-Hans-CN (error -1). Falling back to use default loc.
E:Failed to load bitmap wipe_data_confirmation_text for locale en-US (error -1)
W:Failed to load bitmap wipe_data_menu_header_text for locale zh-Hans-CN (error -1). Falling back to use default loca.
E:Failed to load bitmap wipe_data_menu_header_text for locale en-US (error -1)
I:Starting recovery (pid 258) on Fri Nov 17 01:15:53 2023I:locale is [zh-Hans-CN]
SELinux: Loaded file_contexts