window 配置adb,在环境变量path中添加sdkpath/platform-tools,
1.adb devices; result: list of devices;emulator -list-avds
2.adb -s <devicename> shell ;进入模拟器;adb -e shell
3.emulator -avd < avdName > -port < portNumber > -wipe-data 启动模拟器,设定模拟器不使用快照,擦除用户数据
emulator -avd Pixel_XL_API_26 -writable-system
adb root;adb remount;
adb -e push 上面你复制的路径+su.pie /system/bin/su
另外经过测试,貌似不能写入是因为命令输入的太久了,重启模拟器后再快速输入一遍这三条命令就可以。 后面如果出现没有写入权限或者root失败,也是只能重启。
adb shell 用于调试,根编译与调试密切相关。本小节主要总结一些调试技巧。
1. adb push 与模块编译。
对于一些修改了简单文件,不需要new\remark\,可以进行模块编译,然后根据android.mk文件信息将so,apk push到手机中。
$ source build/envsetup.sh
$ lunch
$ mm
android没有sudo命令,可以使用 su.apk执行su命令;
2.关于模拟器获取root权限
需要将模拟器的/system挂载为可读可写,并且向/system分区写入的内容要保存。查阅资料可知,启动模拟器后,通过mount -o remount /dev/block/vda /system命令可以重新挂载/system分区为可读写,但是重启后,写入的内容会丢失。
解决方法为:
- 使用emulator命令在命令行中启动模拟器,并传入参数-writable-system -netdelay none -netspeed full即可,例如启动名为Android6.0的模拟器,则启动命令为
emulator -writable-system -netdelay none -netspeed full -avd Android6.0 - 启动模拟器后,依次运行以下命令:
adb shell
su
mount -o remount /dev/block/vda /system
最后/system就是可读写了,并且重启后不会丢失之前所写的内容。 - 注:/dev/block/vda 根据自己的mount情况替换
进入目录,以可写方式启动模拟器
使用 C:\Users\Administrator\AppData\Local\Android\Sdk\emulator 下 emulator -avd Nexus_5X_API_29 -writable-system
安装Supersu.apk; 进入目录 C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools;
adb -e install 1739097.apk;
3. 查看数据
cd /data/data/package
sqlite3 db; .table;select * from table;
adb content [delete,query,insert] --uri content://
adb shell content delete --uri content://settings/settings/pointer_speed
adb shell content query --uri content://settings/settings
adb shell content insert --uri content://settings/secure --bind name:s:my_number --bind value:i:24
4.android studio文本对比工具
(1)找到右上角工具栏中的“View”3、找到Compare with Cliboard
(2)获取手机截屏 ,logcat 显示框右侧有照相按钮,可以截屏与录屏;
5.adb shell 获取设备信息
(1)获取传感器信息 adb shell pm list features
(2)获取手机型号 adb shell getprop ro.product.model
(3)获取手机电池信息与设置 adb shell dumpsys battery;
adb shell dumpsys battery set level 100;//设置电量百分比
adb shell dumpsys battery reset; //复位,恢复实际状态
(4)获取系统逻辑分区 adb shell df
获取系统物理分区 adb shell cat sys/block/mmcblk0/mmcblk0p*/size
6. 截屏
adb shell screencap -p /sdcard/01.png
adb pull /sdcard/01.png
7.高低温警告弹框
adb shell dumpsys battery set level 3 //设置手机电量3%
adb shell dumpsys battery unplug/reset //设置手机断开充电/复位
adb shell dumpsys battery set temp 550 550即为55度(高温) -50 即为-5度(低温)
注意:高低温警告需要和驱动沟通,让驱动传一个值
adb shell cd sys/devices/platform/battery
echo 55 > Battery_Temperature
adb shell "echo 55 >> sys/devices/platform/battery/Battery_Temperature"
上层预置batterywarning模块
cts测试真是集合了Google工程师奇技淫巧之大成,很多神奇的骚操作,都可以在这里面找到。