利用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数据][https://www.jianshu.com/p/d25bb146ef36],我又在第二大步骤的基础上进行了以下尝试:
- 备份
//备份 -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 备份密码。
但是结果报错,反正我的目的已经达到了,就不求甚解吧。
利用ADB获取APP资源的更多相关文章
- 利用json获取天气信息
天气预报信息获取是利用json获取的,网上有非常多资源,源码.因为上面涉及到非常多天气信息,包含湿度,出行建议等,以及加入了全部城市代码的资源包.为了练手了解json的原理.我仅获取诚笃城市的最高温, ...
- adb获取Android性能数据
环境:Android测试环境 搭建Android测试环境: 1.下载AndroidSDK: 2.配置环境变量: (1).ANDROID_HOME (2).ANDROID_HOME-TOOLS (3). ...
- 获取APP应用的包名信息
语言: python 3.7 需求:获取APP的包名和程序入口信息,以便在 Appium 脚本中配置 appPackage 和 appActivity 参数. 场景一 资源:已有APP应用的apk安装 ...
- Appium+Python自动化 3 -获取 app 包名和 activity
方法一: ①手机通过USB连接电脑 ②打开手机上被测app ③在电脑上 dos命令窗口,输入命令 adb shell dumpsys window w | findstr \/ | findstr n ...
- 使用Fidder从安卓模拟器获取APP内H5游戏网址
大家都知道H5游戏其实是网页,但是有些APP或者微端不显示网址链接.这里给大家介绍介绍一种,利用Fiddler进行抓包,获取APP打开的网址的方法.有人说何必多此一举呢,直接用模拟器玩游戏就好了.的确 ...
- 快速获取APP对应的appPackage和appActivity
appPackage和appActivity 进行appium自动化测试非常重要的两个参数,我们所测试的APP不同,这两个参数肯定也是不一样的. 介绍两种方法可快速获取APP的这两个参数: 方法一 1 ...
- (转载)Mac系统下利用ADB命令连接android手机并进行文件操作
Mac系统下利用ADB命令连接android手机并进行文件操作 标签: Mac adb android 2016-03-14 10:09 5470人阅读 评论(1) 收藏 举报 分类: Androi ...
- appium---Android app资源监控
我们在做app测试的过程中,都会对app内存,cpu这些做一个简单的测试,今天简单的写下如何通过python监控app这些资源变化 实现原理 1.通过adb命令查看app资源内存 2.通过python ...
- (转)利用libcurl获取新浪股票接口, ubuntu和openwrt实验成功(三)
1. 利用 CURLOPT_WRITEFUNCTION 设置回调函数, 利用 CURLOPT_WRITEDATA 获取数据指针 官网文档如下 CALLBACK OPTIONS CURLOPT_WRI ...
- iOS获取app图标和启动图片名字(AppIcon and LaunchImage's name)
在某种场景下,可能我们需要获取app的图标名称和启动图片的名称.比如说app在前台时,收到了远程通知但是通知栏是不会有通知提醒的,这时我想做个模拟通知提示,需要用到icon名称:再比如在加载某个控制器 ...
随机推荐
- 无缝衔接 gRPC 与 dubbo-go
最近我们 dubbo-go 社区里面,呼声很大的一个 feature 就是对 gRPC 的支持.在某位大佬的不懈努力之下,终于弄出来了. 今天我就给大家分析一下大佬是怎么连接 dubbo-go 和 g ...
- 基于 EventBridge 构建数据库应用集成
简介:本文重点介绍 EventBridge 的新特性:数据库 Sink 事件目标. 作者:赵海 引言 事件总线 EventBridge 是阿里云提供的一款无服务器事件总线服务,支持将阿里云服务.自定 ...
- 殷浩详解DDD:如何避免写流水账代码?
简介: 在日常工作中我观察到,面对老系统重构和迁移场景,有大量代码属于流水账代码,通常能看到开发在对外的API接口里直接写业务逻辑代码,或者在一个服务里大量的堆接口,导致业务逻辑实际无法收敛,接口复用 ...
- [Go] golang 时间格式化 12小时制 与 24小时制
timestamp := int64(1591271169) # 12小时制 time.Unix(timestamp, 0).Format("2006-01-02 03:04:05" ...
- WPF 制作一个占用文件的测试工具
我在开发软件进行测试时,需要测试拖入的文件被占用时软件的行为,于是就做了一个文件占用工具,此工具可以将某个文件进行占用,以及获取某个文件被哪个进程占用 先给大家看一下效果: 以上是拖入文件到灰色部分, ...
- 2019-11-21-win10-uwp-在-Grid-接收键盘消息
title author date CreateTime categories win10 uwp 在 Grid 接收键盘消息 lindexi 2019-11-21 08:51:51 +0800 20 ...
- Mybatis逆向工程的2种方法,一键高效快速生成Pojo、Mapper、XML,摆脱大量重复开发
一.写在开头 最近一直在更新<Java成长计划>这个专栏,主要是Java全流程学习的一个记录,目前已经更新到Java并发多线程部分,后续会继续更新:而今天准备开设一个全新的专栏 <E ...
- OpenCV计算机视觉入门之图像色彩空间转换
目录 1. 引言 2. 概念 2.1 数字图像 2.2 色彩空间 3. 实践-图像读取 5. 完整代码 6. 总结 1. 引言 本文通过导入函数库.读取图像.转换图像色彩空间.缩放图像和保存图像五个步 ...
- 不同模式下删除Oracle数据表的三个实例
首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1 ...
- leaflet 河流颜色渐变效果
1.Leaflet-polycolor github地址:https://github.com/Oliv/leaflet-polycolor 插件缺陷:需要把每个折点的颜色都指定才行,一般做不到 2. ...