利用ADB获取APP资源
最近小编经常受到失眠的困扰,因为在编写一个安卓体能评定的软件,同时又在构思一个桌面管理应用,不管是构想还是操作上都遇到了很多难题,所以寄希望于小编手机上的一款软件,因为版权问题,就不说出它叫啥名字了。这个软件功能棒棒哒,有专门治疗失眠的栏目,可是必须联网在线听。有时候夜里睡前是会把手机调成飞行模式的,这样就听不了那些音乐了,而听那些音乐,又常常会有加班的同事打进电话来,搞的我很烦恼。为什么不把这些音乐下载下来呢?说的好听,做起来难!现把我白瞟下来的步骤记录下来,期间会略去关键信息,仅用于技术参考,其他概不负责。
一、准备工具
adb、安卓手机、rar解压软件和浏览器(推荐谷歌)。
- 调试好adb在系统变量path中的路径,以便可以直接启动adb命令行。
- 安卓手机连接电脑,并启动开发者模式。
二、adb命令行
(一)确认设备是否正常连接
adb shell get-state
获取设备连接状态。
只有设备正常连接才能进行后续操作,设备连接不成功有好多原因,比如手机usb驱动没有安装、数据线不稳定、手机调试模式没有打开等等。
(二)查找目标app包名及存储路径并拉取
- 在命令行中输入
adb logcat | findstr start
记录运行程序并在其中找到刚刚启动的程序,你会看到诸如
start u0 {act=android.intent.action.main cat=[android.intent.category.launcher] flg=0x10200000 cmp=xxx.xxx.xxx/xxxactivity} from pid 1461
之类的东西,其中xxx.xxx.xxx
就是要找的包名,再继续点进我要找的音乐那个界面,发现它是webviewactivity,这就好办了,包里肯定有相关网址信息,然后按ctrl^c退出adb logcat。
- 按照这个思路再输入
adb shell am start -w -n xxx.xxx.xxx/xxxactivity
启动软件,以确认它就是目标软件主界面。 - 输入
adb shell am force-stop xxx.xxx.xxx
强制关闭app。 - 输入
adb shell pm path mtn.plaust.penewstd
获取app安装路径package:/data/app/xxx.apk
。 - 输入
adb pull /data/app/xxx.apk
拉取apk到电脑当前目录。
我的理解是am = activity manager, pm = package manager,-w是-wait即等待activity启动 -n是指定activity名。
三、查看apk信息
用rar软件查看apk,在assets/sleep/
文件夹下找到corexxxxxxnew.txt
,打开一看,是json格式的,在其中找到了我要的信息:
{ "name": "xxxxx", "img": "xxx.png", "imgsquare": "xxx.jpg", "url": "https://www.xxxxxxx.com/xxxxxx/#/voice/146", "description": "xxx", "type": "music", "style": "入睡困难", "model": "0" }
四、使用浏览器调试
- 打开浏览器按f12,并输入地址访问,在network查看找到一条记录,如图所示:,也可以使用正则表达式过滤
.*\.mp3
搜索mp3格式的文件。 - 查看headers信息,找到资源文件url地址,复制链接,然后使用浏览器就下载下来了。
五、其他方法的尝试
根据在简书上参考的一篇文章[使用adb查看别人家的app数据][],我又在第二大步骤的基础上进行了以下尝试:
- 备份
//备份 -nosystem不备份系统 -all所有数据 -noshared除了手机存储空间 -f data.ab输出结果 adb backup -nosystem -all -noapk -noshared -f data.ab
- 使用abe.jar解包
java -jar abe.jar unpack data.ab data.rar 备份密码
。
但是结果报错,反正我的目的已经达到了,就不求甚解吧。
上一篇: MySQL开启慢查询方法及实例
推荐阅读
-
利用ADB获取APP资源
-
servlet--利用getResourceAsStream获取properties文件资源的方法解析
-
万人举报阿里巴巴小二,私下利用阿里资源开发返利网APP
-
利用ADB获取APP资源
-
利用E4A编写APP获取安卓手机加速度传感器数据
-
servlet--利用getResourceAsStream获取properties文件资源的方法解析
-
Java如何利用getClass().getResourceAsStream()方法来获取资源的实例分析
-
Java如何利用getClass().getResourceAsStream()方法来获取资源的实例分析
-
万人举报阿里巴巴小二,私下利用阿里资源开发返利网APP