一、准备环境,安装adb
简要介绍adb:Android 调试桥 (adb) 是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。
- 先去上述地址下载adb工具,安装并解压到你熟悉的目录
- 手机打开开发者模式,USB数据线连接电脑,并开启MTP协议
- 在adb工具的目录下,按住Shift+右键单击,选择“在此处打开PowerShell窗口”——单击,启动cmd命令行窗口
4.输入命令:adb devices,如果有下图报错,请输入:.\adb devices 意思是在当前目录下运行此命令,你就会看到成功启动端口的提示
- 手机上会弹出一个允许调试确认对话框,允许即可
- 然后再次输入第四步的命令,你会看到一个设备号,即代表成功!
以上,就是adb安装调试过程。 为了方便使用,可以再增加一步添加全局环境变量的过程,这样方便你在任何一处地方的命令窗口都能使用adb命令行
Windows 10 下配置 ADB 环境变量
在 Android 开发中,设备和代码的调试都离不开 ADB(Android Debug Bridge),默认情况下 ADB 没有被加入到系统环境变量中,这也就意味着不能在任何地方调起 ADB。如果调用,则会出现 [ adb 不是内部或外部命令,也不是可运行的程序或批处理文件。] 的提示,如下图所示:
那么,如何为 ADB 设置环境变量呢?右键「此电脑」›「属性」›「高级系统设置」›「高级」›「环境变量」来到环境变量选项卡。 (快速打开环境变量的命令:首先win+R键,打开运行,在运行里面键入sysdm.cpl回车,即可。)
点击「系统变量」下的「新建」按钮添加系统变量。
在弹出的「新建系统变量」界面填入变量名(任意非重复的值)和变量值(必须是 adb.exe 文件所在目录的路径),点击「确定」完成系统变量的添加。
完成系统变量的添加后,还需要将添加的变量加入到系统变量的 Path 中。选中「系统变量」下的「Path」,点击「编辑」按钮进入编辑环境变量界面。
在「编辑环境变量」界面点击「新建」将之前添加的变量名以 %变量名% 封闭的形式写入 Path,然后点击确定,完成 ADB 环境变量的配置。关闭并重新打开 CMD 窗口,输入 adb 来验证 ADB 的环境变量是否配置成功。
二、PC端与Android端安装frida并做初步操作(安卓手机需要root)
PC端安装frida(尽量科学上网,要不然不一定成功,如果实在没有条件,建议切换国内镜像源)
pip install frida-tools # CLI tools
pip install frida # Python bindings
Android端 手机上需要下载安装frida-service,并启动起来。 去官网下载与你电脑版本对应的手机版本:frida版本 (我电脑上是15.1.14版本,但是由于安卓端使用的是12.8.0的frida版本,因此,我这边需要适配手机端而不是PC端,如果安装了与电脑相同版本的frida,会导致我的自己写的软件启动不起来。) 12.8.0frida版本
- 找到你需要的frida版本之后,有很多不同的架构供你使用,如果安装了不匹配自己的手机的版本,也是不行的,这里需要查看手机的cpu信息,用来确定你需要安装哪一个。adb查看安卓手机cpu信息命令:adb shell getprop ro.product.cpu.abi
这里提示的很明显,需要我安装arm64版本的,注意要与安装的frida版本一致,同时注意android是32为还是64位,如frida-server-12.0.3-android-arm64.xz,就这个例子,而言,我只需要将12.0.3替换成12.8.0的版本即可,其他一样。
2. 下载完成后解压,将名字改为frida,使用adb命令放入手机中
$ adb push /Users/bennu/Downloads/frida /data/local/tmp #前面路径是你下载到电脑上的frida目录,后面路径是你要存储到手机上的目录路径
- 给手机端frida设置权限
*chmod 777 文件或目录*需要root权限,否则会报错此操作不被允许 4.然后启动frida-service,步骤如下:
$ adb shell //进入手机终端
#cd /data/local/tmp
# su #切换为root超级用户权限
# ps | grep 'frida' //查看服务是否启动
root 4743 1 52064 15456 poll_sched b5eaaa5c S ./frida-11.0.13
# ./frida & //启动服务
在使用su命令切换root权限时,需要你手机端进行确认才能继续下面的命令,如果没搞过这个的人,会以为卡了之类的,所以以上的命令,建议一行行的输入。
- 如果想停止frida服务,则:
# kill -s 9 4743 //杀死服务(4743是进程id)
- 其他参考资料 adb的一些基础命令操作