• 利用ADB获取APP资源


    最近小编经常受到失眠的困扰,因为在编写一个安卓体能评定的软件,同时又在构思一个桌面管理应用,不管是构想还是操作上都遇到了很多难题,所以寄希望于小编手机上的一款软件,因为版权问题,就不说出它叫啥名字了。这个软件功能棒棒哒,有专门治疗失眠的栏目,可是必须联网在线听。有时候夜里睡前是会把手机调成飞行模式的,这样就听不了那些音乐了,而听那些音乐,又常常会有加班的同事打进电话来,搞的我很烦恼。为什么不把这些音乐下载下来呢?说的好听,做起来难!现把我白瞟下来的步骤记录下来,期间会略去关键信息,仅用于技术参考,其他概不负责

    一、准备工具

    adb、安卓手机、RAR解压软件和浏览器(推荐谷歌)。

    1. 调试好adb在系统变量path中的路径,以便可以直接启动adb命令行。
    2. 安卓手机连接电脑,并启动开发者模式。

    二、adb命令行

    (一)确认设备是否正常连接

    adb shell get-state获取设备连接状态。
    只有设备正常连接才能进行后续操作,设备连接不成功有好多原因,比如手机USB驱动没有安装、数据线不稳定、手机调试模式没有打开等等。

    (二)查找目标app包名及存储路径并拉取

    1. 在命令行中输入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。

    1. 按照这个思路再输入adb shell am start -W -n XXX.XXX.XXX/XXXActivity启动软件,以确认它就是目标软件主界面。
    2. 输入adb shell am force-stop XXX.XXX.XXX强制关闭app。
    3. 输入adb shell pm path mtn.plaust.penewstd获取APP安装路径package:/data/app/XXX.apk
    4. 输入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"
    }
    

    四、使用浏览器调试

    1. 打开浏览器按F12,并输入地址访问,在Network查看找到一条记录,如图所示:sleep*.mp3记录,也可以使用正则表达式过滤.*.mp3搜索mp3格式的文件。
    2. 查看headers信息,找到资源文件URL地址,复制链接,然后使用浏览器就下载下来了。

    五、其他方法的尝试

    根据在简书上参考的一篇文章[使用adb查看别人家的app数据][https://www.jianshu.com/p/d25bb146ef36],我又在第二大步骤的基础上进行了以下尝试:

    1. 备份
    //备份 -nosystem不备份系统 -all所有数据 -noshared除了手机存储空间 -f data.ab输出结果
    adb backup -nosystem -all -noapk -noshared -f data.ab
    
    1. 使用abe.jar解包
      java -jar abe.jar unpack data.ab data.rar 备份密码

    但是结果报错,反正我的目的已经达到了,就不求甚解吧。

  • 相关阅读:
    TensorFlow从0到1之TensorFlow实现多元线性回归(11)
    TensorFlow从0到1之TensorFlow实现简单线性回归(10)
    TensorFlow从0到1之TensorFlow csv文件读取数据(9)
    TensorFlow从0到1之TensorFlow优化器(8)
    TensorFlow从0到1之TensorFlow损失函数(7)
    TensorFlow从0到1之回归算法(6)
    Python爬虫小白入门(六)爬取披头士乐队历年专辑封面-网易云音乐
    Python爬虫小白入门(五)PhatomJS+Selenium第二篇
    Python爬虫小白入门(四)PhatomJS+Selenium第一篇
    Python爬虫小白入门(三)BeautifulSoup库
  • 原文地址:https://www.cnblogs.com/hele-two/p/12688736.html
Copyright © 2020-2023  润新知