android adb
文章平均质量分 75
kc专栏
深入探索android Framework层代码,博客持续更新中!!!
展开
-
sn序列号改变导致cts异常中断(案例)
之前遇到一个问题,就是cts挂测1-2天就会出现cts异常中断,后来找到原因是由于sn号改变,导致cts在手机重启后不能连上手机。一、通过adb devices代码 得知pc获取手机sn号的方式正常情况下,我们可以使用adb devices来查看手机的序列号,我们可以从adb 这块入手,去看pc是如何获取手机序列号的。adb devices是pc侧的命令,我们先从adb的Com原创 2016-07-05 13:43:09 · 1924 阅读 · 0 评论 -
Android8.0 user版本使用adb root(且不用授权adb key)
在之前的几篇adb文章中,我们清楚了adb root和adb key授权的流程。这篇文章我们我们主要分析下android8.0 上如何在user版本上adb root以及不用adb key的授权。首先我们在adbd_main函数中将auth_required置为false,这个变量的用处我们在这篇博客中详细分析过了https://blog.csdn.net/kc58236582/article...原创 2018-09-06 09:42:11 · 13285 阅读 · 1 评论 -
recover模式下的adbd
recover模式下的adbd是用了一个libminadbd的静态库,我们来看下mk文件LOCAL_SRC_FILES := \ fuse_adb_provider.cpp \ minadbd.cpp \ minadbd_services.cpp \LOCAL_CLANG := trueLOCAL_MODULE := libminadbdLOCAL_CFLAG...原创 2018-08-30 18:25:31 · 898 阅读 · 0 评论 -
android6.0 adbd深入分析(二)adb驱动数据的处理、写数据到adb驱动节点
上篇博客最后讲到在output_thread中,读取了adb驱动的数据后,就调用write_packet(t->fd, t->serial, &p)函数,把数据网socketpair的一侧写。这会导致socketpair的另一侧有数据,另一侧有数据会调用transport_socket_events函数来处理数据。一、处理驱动读取的数据我们现在来看看transport_原创 2016-04-12 19:00:37 · 7609 阅读 · 4 评论 -
android6.0 adbd深入分析(一)adb驱动初始化、读取adb节点线程
adbd之前看过一次,觉得代码太复杂然后,又是adb client adb server adbd交织在一起感觉看起来太累,最近项目需要把它大致看完了,梳理下,感觉从adbd能学到很多东西,在此总结下,adbd的代码。我只分析我看懂了,不可能面面俱到。而且主要注重在通信方面,以及一些命令处理等。一、adb主函数我们先来看下主函数:int main(int argc, char *原创 2016-04-12 16:12:34 · 9617 阅读 · 3 评论 -
user版本不能使用adb问题
最近碰到一个问题user版本不能使用adb问题。这个问题涉及到adbd和Usb相关的service代码。一、adbd我们先看看adbd对user版本的代码:首先在adb_main函数中有如下代码,当ro.adb.secure属性为0的时候auth_required 变量为false。这个时候一般是debug版本(不会设置这个属性或者这个属性为0) if (ALLOW_原创 2016-12-07 11:11:54 · 7761 阅读 · 2 评论 -
android6.0 adbd深入分析(三)adb root重启adbd流程
上篇博客中分析过adb root pc到adbd的流程,这篇博客我们再来讲下adb root是adbd重启并且获取root的流程。我们再来回顾之前的函数:void restart_root_service(int fd, void *cookie) { if (getuid() == 0) {//uid为0,说明已经是root了 WriteFdExactly(fd, "原创 2016-04-13 11:14:53 · 10848 阅读 · 3 评论 -
android6.0 adbd深入分析(四)adbd usb线拔掉再连接的过程
这篇博客我们主要分析下adbd在usb线拔掉,然后再连接的代码流程。一、log打印流程我们先来看下自己调试的代码打印:由于显示的问题,我把log的时间去除了,只显示了pid 和tid//拔去usb线185 188 I adbd : output_thread:(null): remote read failed for transport185 188 I原创 2016-04-14 16:14:10 · 5756 阅读 · 1 评论 -
android6.0 adbd深入分析(五)adbd处理adb root的一个bug
在之前博客中我们分析了很多adbd的代码,也分析了adb root的代码流程,这篇博客我们说下adb root的一个bug。一、问题我们先来回顾下adbd处理adb root的代码:void restart_root_service(int fd, void *cookie) { if (getuid() == 0) { WriteFdExactly(f原创 2016-04-14 16:32:39 · 7435 阅读 · 0 评论 -
Android8.0 user版本adb 的log输出到串口中
我们在调试adb时不能使用logcat,这个时候我们需要把adb的log输出到串口,init就能实现,我们仿造init的代码,在adbd的main函数中调用了如下函数InitKernelLogging(nullptr);这个函数在init进程中也有调用。这个函数的意思把标准输入输出,标准错误全部写到/sys/fs/selinux/null,也就没有了。然后定了一InitLogging为kernel...原创 2019-01-22 15:11:14 · 1964 阅读 · 0 评论