安卓的安装包都是以.apk结尾的,反编译安卓安装包可以看到相关代码,这对开发人员的学习或者破解相关资源都是很有帮助的,而针对某一款软件的最新软件进行反编译,不一定会有很好的效果,但是它的历史版本是可以的,所以这个项目就是开发一款专门搜索及抓取apk历史版本的工具
应用汇市场拥有安卓apk包搜索,及历史版本查看功能,所以我们可以用代理软件,查看这些相关的接口,并用python进行调用,最终实现自己的这款神奇工具。
- Git使用
- Python (版本采用2.7版本,采用Tkinter做GUI开发)
- 基本的网络知识
任务会随着开发不断进行整理,框中有对勾为已完成,否则未完成
- 环境搭建
- 抓取网络接口地址
- 接口分析
- 学会Json库的使用
- 接口调用
- 对接口进行相应的封装,方便调用
- 设计UI界面
- UI界面填充数据,并响应操作
- 可以下载搜索好的apk包数据
- git环境搭建
- 使用git克隆项目到本地
- python环境搭建
- PyCharm环境安装(非必须,记事本等也可以)
使用网络代理软件观察接口 (windows环境 使用fiddler,mac环境使用Charles,涉及配置可以百度)
- 安装fiddler
- 手机端安装应用汇客户端
- 手机端wifi设置手动代理为电脑ip 和 fiddler的端口,默认端口应该为:哈哈忘了,自己查吧
- 使用https的可能需要安装证书
- 点击应用汇app观察代理上是否有应用汇数据请求
- 搜索接口
- 找旧版接口
通过搜索接口找到具体app的id,然后通过这个id组装找旧版接口的请求参数,即可获取到app的历史版本信息列表,其中就包括下载地址
接口地址都是https://mobile.appchina.com/market/api,通过上传的参数决定调用什么接口
- 搜索接口上传参数(返回数据 见文件app.list.search.json)
参数 | 值 |
---|---|
deviceId | 设备Id随便写整数即可 |
referer | 06b15137-908f-4f51-b035-e296d5fda1b6 |
api | market.MarketAPI |
param | 见文件app.list.search.json |
- app找旧版接口(返回数据见 app.pastdetails.json文件)
其它参数跟搜索接口一样
参数 | 值 |
---|---|
param | {"apiVer":23,"guid":"06b15137-908f-4f51-b035-e296d5fda1b6","imei":"869394021134371","type":"app.pastdetails","id":5341338,"packagename":"com.miui.video","start":0,"size":100,"clientTime":1511663556932,"imglevel":3,"gpuType":4,"clientVersionCode":30061345,"channel":"ac.ex.360"} //其中的id为搜索接口返回的id |
用提取好的接口尝试调用,看是否可以返回需要的数据(其数据格式是Json格式)