当前位置: 首页 > news >正文

网站建设平台卜先明专门做网站制作的公司

网站建设平台卜先明,专门做网站制作的公司,wordpress时区设置,网站效果图制作Android 13 网络 Adb 默认开启 文章目录 Android 13 网络 Adb 默认开启一、前言二、默认adb 代码实现1、修改的目录#xff1a;2、具体修改#xff1a;#xff08;1#xff09;在XXX_device.mk 添加属性#xff08;2#xff09;设置固定端口号#xff08;3#xff09;去…Android 13 网络 Adb 默认开启 文章目录 Android 13 网络 Adb 默认开启一、前言二、默认adb 代码实现1、修改的目录2、具体修改1在XXX_device.mk 添加属性2设置固定端口号3去除判断网络后设置 ADB_WIFI_ENABLED 为 0 的代码 三、日志查看四、其他1、adb 相关属性1 prop属性persist.adb.tls_server.enable2prop属性service.adb.tls.port3Settings属性Settings.Global.ADB_WIFI_ENABLED adb_wifi_enabled 2、AdbService.java、AdbDebuggingManager.java、adb_wifi.cpp 的关系1 adb_wifi 是底层init/cpp 启动的服务2AdbService启动时机3ramework\base\core\java\android\debug\IAdbManager.aidl 一、前言 通过代码分析发现Android13 上对 网络adb 进行了限制 Android13原生代码要求必现连接上某个wifi才能进行adb 并且切换wifi或者关闭wifi都是会停止adb。 如果要做成Android11 或者之前一样设备连接WiFi/有线网络后电脑可以直接进行adb连接就要对系统代码进行适配修改。 关键 1、mk 设置系统属性persist.adb.tls_server.enable1 2、写死端口号 5555 3、注释若干判断Wifi情况停止adb的代码 之前以为设置端口号和persist.adb.tls_server.enable 属性就ok了但是还是有些小bug还是要完全研究一遍具体流程。 二、默认adb 代码实现 1、修改的目录 packages\modules\adb\daemon\adb_wifi.cpp framework\base\services\core\java\com\android\server\adb\AdbDebuggingManager.java//修改前面两个文件就可以实现adb了后面的文件试辅助分析的。//虽然 SettingsProvider 也有加载 Settings属性 Settings.Global.ADB_WIFI_ENABLED //但是 prop那个属性更优先所以可以不用考虑这里默认情况 framework\base\packages\SettingsProvider\src\com\android\providers\settings\SettingsProvider.java//增加分析定位文件系统服务启动后会判断 属性persist.adb.tls_server.enable 进行相关操作 //如果属性设置不生效可以在这里添加打印日志查看过程 framework\base\services\core\java\com\android\server\adb\AdbService.java2、具体修改 1在XXX_device.mk 添加属性 persist.adb.tls_server.enable 1 手动添加也是会记忆的 2设置固定端口号 b/release/packages/modules/adb/daemon/adb_wifi.cpp-160,7 160,8 static void enable_wifi_debugging() {if (sTlsServer ! nullptr) {delete sTlsServer;} - sTlsServer new TlsServer(0);// default port 0 means random,change to 5555 ,by liwenzhisTlsServer new TlsServer(5555);if (!sTlsServer-Start()) {LOG(ERROR) Failed to start TlsServer;delete sTlsServer; 3去除判断网络后设置 ADB_WIFI_ENABLED 为 0 的代码 一个是初始化的时候判断另外一个是监听网络变化的时候判断都去掉就行。 b/release/frameworks/base/services/core/java/com/android/server/adb/AdbDebuggingManager.java public class AdbDebuggingManager {case MSG_ADBDWIFI_ENABLE: {if (mAdbWifiEnabled) {break;}//not to check network state ,change by liwenzhi //1去除下面一大段判断网络和监听网络的代码/** AdbConnectionInfo currentInfo getCurrentWifiApInfo();if (currentInfo null) {Settings.Global.putInt(mContentResolver,Settings.Global.ADB_WIFI_ENABLED, 0); //关闭 adb wifibreak;}if (!verifyWifiNetwork(currentInfo.getBSSID(),currentInfo.getSSID())) {// This means that the network is not in the list of trusted networks.// Well give user a prompt on whether to allow wireless debugging on// the current wifi network.Settings.Global.putInt(mContentResolver,Settings.Global.ADB_WIFI_ENABLED, 0);break;}setAdbConnectionInfo(currentInfo); **///no listener network change for disable adb_wifi,by liwenzhi/** IntentFilter intentFilter new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION);intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);mContext.registerReceiver(mBroadcastReceiver, intentFilter); **/SystemProperties.set(WIFI_PERSISTENT_CONFIG_PROPERTY, 1);case MSG_ADBDWIFI_DISABLE:if (!mAdbWifiEnabled) {break;}mAdbWifiEnabled false;setAdbConnectionInfo(null);//no need unregisterReceiver, because no listener network,chenge by liwenzhi//2监听已经注释不需要再注销监听//mContext.unregisterReceiver(mBroadcastReceiver);case MSG_ADBWIFI_ALLOW:if (mAdbWifiEnabled) {break;}String bssid (String) msg.obj;boolean alwaysAllow msg.arg1 1;if (alwaysAllow) {mAdbKeyStore.addTrustedNetwork(bssid);}// Lets check again to make sure we didnt switch networks while verifying// the wifi bssid.//no to check network ,change by liwenzhi //3不需要判断网络/** AdbConnectionInfo newInfo getCurrentWifiApInfo();if (newInfo null || !bssid.equals(newInfo.getBSSID())) {break;}setAdbConnectionInfo(newInfo); **/Settings.Global.putInt(mContentResolver,Settings.Global.ADB_WIFI_ENABLED, 1);//no listener network change for disable adb_wifi,by liwenzhi //4不需要要监听网络变化/** IntentFilter intentFilter new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION);intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);mContext.registerReceiver(mBroadcastReceiver, intentFilter); **/SystemProperties.set(WIFI_PERSISTENT_CONFIG_PROPERTY, 1); 三、日志查看 日志查看主要是AdbService.java、AdbDebuggingManager.java、adb_wifi.cpp AdbService 的日志默认是关闭模式的需要设置成true并且如果要看里面数据具体值相关属性的日志需要自己添加打印出来。 AdbDebuggingManager 是有相关异常过程日志的 adb_wifi 该文件的打印TAG 是adbd, 不管有没有打开adb整个系统是一直有这个 adbd 的相关打印的每秒大概有十几行日志 这里查看打印相关日志多个关键字的信息命令 logcat | grep -E lwz|AdbService|changed to|adb wifi|AdbDebuggingManager lwz 是我自己加的关键字。 通过日志查看正常开启的情况大概日志过程是 01-01 08:00:22.756 496 511 I adbd : Waiting for persist.adb.tls_server.enable1 08-16 15:13:50.123 762 762 D SystemServerTiming: StartAdbService 08-16 15:13:51.528 762 762 D AdbService: systemReady //修改 DEBUG true 才看到的日志 08-16 15:13:51.528 762 762 D AdbService: lwz systemReady persist.adb.tls_server.enable 1 //自己加的日志打印 08-16 15:13:51.528 762 762 D AdbService: lwz systemReady mIsAdbWifiEnabled true //自己加的日志打印确认查看服务启动是否打开 adb 08-16 15:13:58.993 762 799 D AdbService: setAdbEnabled(true), mIsAdbUsbEnabledtrue, mIsAdbWifiEnabledtrue, transportType0 08-16 15:13:58.994 762 762 D AdbService: lwz onChange shouldEnable true 08-16 15:13:58.995 762 799 D AdbService: setAdbEnabled(true), mIsAdbUsbEnabledtrue, mIsAdbWifiEnabledtrue, transportType1 08-16 15:13:59.015 762 802 D ActivityManagerTiming: OnBootPhase_1000_com.android.server.adb.AdbService$Lifecycle 08-16 15:13:59.016 762 802 V ActivityManagerTiming: OnBootPhase_1000_com.android.server.adb.AdbService$Lifecycle took to complete: 1ms 08-16 15:13:59.016 762 799 D AdbService: boot completed 08-16 15:13:59.033 496 511 I adbd : persist.adb.tls_server.enable changed to 1 //正常开启adb的日志 08-16 15:13:59.056 496 511 I adbd : adb wifi started on port 5555 08-16 15:13:59.058 496 511 I adbd : Waiting for persist.adb.tls_server.enable0 如果未屏蔽网络判断添加打印日志查看过程: 08-18 16:51:20.104 762 762 D SystemServerTiming: OnBootPhase_550_com.android.server.adb.AdbService$Lifecycle 08-18 16:51:20.104 762 762 D AdbService: systemReady 08-18 16:51:20.105 762 762 D AdbService: lwz systemReady mIsAdbWifiEnabled true //这里说明prop 属性已经设置了 08-18 16:51:26.248 762 798 I AdbDebuggingManager: Not connected to any wireless network. Not enabling adbwifi. //这里提示没网络会执行关闭adb 08-18 16:51:26.586 762 762 D AdbService: lwz onChange shouldEnable false 08-18 16:51:27.411 762 762 D AdbService: lwz onChange shouldEnable false 08-18 16:51:27.971 762 798 D AdbService: setAdbEnabled(true), mIsAdbUsbEnabledtrue, mIsAdbWifiEnabledtrue, transportType0 08-18 16:51:27.972 762 798 D AdbService: setAdbEnabled(false), mIsAdbUsbEnabledtrue, mIsAdbWifiEnabledtrue, transportType1 //关闭adb 08-18 16:51:27.973 510 517 I adbd : persist.adb.tls_server.enable changed to 0 //到这里 persist.adb.tls_server.enable 属性又变成了 0 08-18 16:51:27.973 510 517 I adbd : adb wifi stopped 08-18 16:51:27.981 762 798 D AdbService: Broadcasting enable false, type 1 这个也是为啥配置了那个 persist.adb.tls_server.enable 1 属性后系统启动发现获取属性还是0 并且wifi adb未打开。 四、其他 1、adb 相关属性 1 prop属性persist.adb.tls_server.enable 系统启动后AdbService 会判断该属性决定后续是否执行开启adb。 2prop属性service.adb.tls.port 该属性是 adb_wifi.cpp 使能adb的时候设置的. 后续让你知道它的端口号。 所以设置这个属性值是没有意义的。 在 adb_wifi.cpp初始化 TlsServer 设置固定端口 5555那么这个属性一直就是 5555. 3Settings属性Settings.Global.ADB_WIFI_ENABLED “adb_wifi_enabled” 同时在 AdbService 是有监听 这个Global 属性的变化关联上 AdbDebuggingManager 设置 adb 使能。 查询和设置命令 //查询属性 setttings get global adb_wifi_enabled //设置属性 0/1 setttings put global adb_wifi_enabled 1 该属性是系统上层设置的一个值原本主要用来记录adb wifi 的开关状态。 因为Android13 会判断当前wifi是否是信任的切换wifi后设置这个属性是无效的。 但是如果修改了上面去除网络限制对策后直接设置Global属性是会正常开关adb的。 如果未去除网络限制对策你会发现 adb_wifi_enabled 无法设置成1 因为 AdbDebuggingManager 在开启的是会还会判断网络情况如果没有网络会设置为 0 . 2、AdbService.java、AdbDebuggingManager.java、adb_wifi.cpp 的关系 1 adb_wifi 是底层init/cpp 启动的服务 具体哪里启动的暂不去研究 里面的日志是跑在比较前面的比SystemServer 更早。 同时也是具体能够使能 网络adb 的关键 也是为啥设置了 persist.adb.tls_server.enable1 能够直接使能网络adb的原因。 正常开启和关闭adb 是有相关日志的。 2AdbService启动时机 AdbService 是SystemServer 执行 startOtherServices 里面启动的服务。 AdbService extends IAdbManager.Stub //具体暴露接口可以看 IAdbManager AdbDebuggingManager 是一个管理adbDebug的类在 AdbService 里面实例化其实就是分化了一下具体执行的代码。 很多无法进入adb wifi 的情况都是在AdbDebuggingManager 拒绝的并且重新设置了 Global属性 和 Prop 属性为0 3ramework\base\core\java\android\debug\IAdbManager.aidl package android.debug;import android.debug.FingerprintAndPairDevice; import android.debug.IAdbCallback;/*** Interface to communicate remotely with the {code AdbService} in the system server.** hide //隐藏的*/ interface IAdbManager {/*** Allow ADB debugging from the attached host. If {code alwaysAllow} is* {code true}, add {code publicKey} to list of host keys that the* user has approved.** param alwaysAllow if true, add permanently to list of allowed keys* param publicKey RSA key in mincrypt format and Base64-encoded*/void allowDebugging(boolean alwaysAllow, String publicKey);/*** Deny ADB debugging from the attached host.*/void denyDebugging();/*** Deny ADB wireless debugging on the connected network.*/void denyWirelessDebugging();/*** Returns true if device supports secure Adb over Wi-Fi.*/boolean isAdbWifiSupported();} 上面接口估计对开发者没啥用 适配了去除网络限制上面代码后就应用而言使用 Settings.Global.ADB_WIFI_ENABLED 控制和或者当前 网络adb状态最合适的。 虽然使用prop 属性也能生效但是系统应用Settings判断的是Settings.Global.ADB_WIFI_ENABLED的值是否为1会出现状态显示不同步的情况。
文章转载自:
http://www.morning.wmyqw.com.gov.cn.wmyqw.com
http://www.morning.fglth.cn.gov.cn.fglth.cn
http://www.morning.nrfrd.cn.gov.cn.nrfrd.cn
http://www.morning.nwcgj.cn.gov.cn.nwcgj.cn
http://www.morning.rjznm.cn.gov.cn.rjznm.cn
http://www.morning.dtnzk.cn.gov.cn.dtnzk.cn
http://www.morning.wqpm.cn.gov.cn.wqpm.cn
http://www.morning.prhfc.cn.gov.cn.prhfc.cn
http://www.morning.neletea.com.gov.cn.neletea.com
http://www.morning.pwmpn.cn.gov.cn.pwmpn.cn
http://www.morning.yhrfg.cn.gov.cn.yhrfg.cn
http://www.morning.jrsgs.cn.gov.cn.jrsgs.cn
http://www.morning.bpmfz.cn.gov.cn.bpmfz.cn
http://www.morning.jpnfm.cn.gov.cn.jpnfm.cn
http://www.morning.fthcq.cn.gov.cn.fthcq.cn
http://www.morning.nqwkn.cn.gov.cn.nqwkn.cn
http://www.morning.nmyrg.cn.gov.cn.nmyrg.cn
http://www.morning.qbnfc.cn.gov.cn.qbnfc.cn
http://www.morning.phjyb.cn.gov.cn.phjyb.cn
http://www.morning.rtlth.cn.gov.cn.rtlth.cn
http://www.morning.krjyq.cn.gov.cn.krjyq.cn
http://www.morning.kbbmj.cn.gov.cn.kbbmj.cn
http://www.morning.jqzns.cn.gov.cn.jqzns.cn
http://www.morning.wjrtg.cn.gov.cn.wjrtg.cn
http://www.morning.wkws.cn.gov.cn.wkws.cn
http://www.morning.ltrms.cn.gov.cn.ltrms.cn
http://www.morning.wgdnd.cn.gov.cn.wgdnd.cn
http://www.morning.hyjpl.cn.gov.cn.hyjpl.cn
http://www.morning.easiuse.com.gov.cn.easiuse.com
http://www.morning.jkcpl.cn.gov.cn.jkcpl.cn
http://www.morning.ndhxn.cn.gov.cn.ndhxn.cn
http://www.morning.lkrmp.cn.gov.cn.lkrmp.cn
http://www.morning.jkcnq.cn.gov.cn.jkcnq.cn
http://www.morning.wtcbl.cn.gov.cn.wtcbl.cn
http://www.morning.chgmm.cn.gov.cn.chgmm.cn
http://www.morning.jzxqj.cn.gov.cn.jzxqj.cn
http://www.morning.qrqg.cn.gov.cn.qrqg.cn
http://www.morning.zqzzn.cn.gov.cn.zqzzn.cn
http://www.morning.fmtfj.cn.gov.cn.fmtfj.cn
http://www.morning.dpsgq.cn.gov.cn.dpsgq.cn
http://www.morning.eronghe.com.gov.cn.eronghe.com
http://www.morning.iiunion.com.gov.cn.iiunion.com
http://www.morning.dnzyx.cn.gov.cn.dnzyx.cn
http://www.morning.bnlkc.cn.gov.cn.bnlkc.cn
http://www.morning.yhsrp.cn.gov.cn.yhsrp.cn
http://www.morning.lsxabc.com.gov.cn.lsxabc.com
http://www.morning.gjssk.cn.gov.cn.gjssk.cn
http://www.morning.bnfrj.cn.gov.cn.bnfrj.cn
http://www.morning.hbqhz.cn.gov.cn.hbqhz.cn
http://www.morning.kggxj.cn.gov.cn.kggxj.cn
http://www.morning.bxnrx.cn.gov.cn.bxnrx.cn
http://www.morning.snlxb.cn.gov.cn.snlxb.cn
http://www.morning.bsjpd.cn.gov.cn.bsjpd.cn
http://www.morning.kflzy.cn.gov.cn.kflzy.cn
http://www.morning.rtzd.cn.gov.cn.rtzd.cn
http://www.morning.jhgxh.cn.gov.cn.jhgxh.cn
http://www.morning.lhjmq.cn.gov.cn.lhjmq.cn
http://www.morning.rwhlf.cn.gov.cn.rwhlf.cn
http://www.morning.mzydm.cn.gov.cn.mzydm.cn
http://www.morning.msbmp.cn.gov.cn.msbmp.cn
http://www.morning.hdtcj.cn.gov.cn.hdtcj.cn
http://www.morning.grbgn.cn.gov.cn.grbgn.cn
http://www.morning.kryr.cn.gov.cn.kryr.cn
http://www.morning.sfnr.cn.gov.cn.sfnr.cn
http://www.morning.zxdhp.cn.gov.cn.zxdhp.cn
http://www.morning.syglx.cn.gov.cn.syglx.cn
http://www.morning.abgy8.com.gov.cn.abgy8.com
http://www.morning.fyglr.cn.gov.cn.fyglr.cn
http://www.morning.dhrbj.cn.gov.cn.dhrbj.cn
http://www.morning.mzkn.cn.gov.cn.mzkn.cn
http://www.morning.tqwcm.cn.gov.cn.tqwcm.cn
http://www.morning.qngcq.cn.gov.cn.qngcq.cn
http://www.morning.qttg.cn.gov.cn.qttg.cn
http://www.morning.jfwbr.cn.gov.cn.jfwbr.cn
http://www.morning.wblpn.cn.gov.cn.wblpn.cn
http://www.morning.mzwqt.cn.gov.cn.mzwqt.cn
http://www.morning.dpsgq.cn.gov.cn.dpsgq.cn
http://www.morning.yqsr.cn.gov.cn.yqsr.cn
http://www.morning.ccffs.cn.gov.cn.ccffs.cn
http://www.morning.zrnph.cn.gov.cn.zrnph.cn
http://www.tj-hxxt.cn/news/249699.html

相关文章:

  • 天睦和生态建设有限公司网站公装网站怎么做
  • 德清网站设计湖南网站建设价格
  • 成都微网站旧房装修 翻新的公司
  • 网站集约化建设的优点erp是什么系统软件
  • 哪些网站可宣传三九手机网手机响应式网站模版
  • 做网站做地区好还是全国的好建设银行信用卡管理中心网站
  • 企业网站建设套餐上海计算机基础培训机构
  • 企业建网站选中企动力wordpress培训类网站
  • 常见的网站模式青岛高新区建设局网站
  • 做设计网站wordpress会员下载插件
  • 重庆网站设计开发网站百度指数
  • 杭州外贸网站建设wordpress 占用cpu
  • 三网合一的模板网站廊坊网站快照优化公司
  • 上海专业网站建设服务如何看别人网站用什么做的
  • 网站建设需求文档网站qq在线代码
  • 电器工程东莞网站建设网站建设毕业设计 任务书
  • pc网站转换成wap泰州网站制作建设
  • wordpress整站搬家教程开个网站建设公司需要什么软件
  • 免费ktv网站模板微商城系统源码
  • 网站你懂我意思正能量免费下载网站空间域名购买
  • 大港油田建设官方网站网站正在紧急建设中
  • 滕州 网站 建设网站分析与优化的文章
  • 淘宝上网站建设为啥这么便宜无忧传媒在短视频领域的成就
  • 网络游戏那个网站做的最好环球易购做中东的网站
  • 做天猫网站价格山西教育平台网站建设
  • 官方网站开发商营销型网站建设 高校邦
  • 天津市建设工程信息交易网深圳seo网站设计
  • 设计师专用网站平台网站空间
  • 刘涛做的婴儿玩具网站广州海珠发布
  • 网站默认首页怎么做产品故事软文案例