代码拉取完成,页面将自动刷新
随着对 apk 内部集成 SDK 调研需求的增加,实现自动化检测 apk 包中 SDK 集成情况的功能是很有必要的。 因此,笔者创建了 SDK-Analysis 这个项目,目的就是自动化拆解 apk 包,并查找其是否集成所要了解的 SDK。
目前支持 8 家 SDK 的检测:数盟,数美,极光,友盟,Mob,TalkingData,网易易盾,易观方舟;具体步骤:
将代码下载到本地后:
将要解析的 apk 放入项目的 apk 目录下,可以支持 n 个apk的解析工作
根据自身情况修改文件路径,本示例以如下:
# 要解析的 apk 文件路径
pathsour = 'D:\\MyProgects\\Python\\SdkAnalysis\\apk\\'
# baksmali.jar
baksmali = 'D:\\MyProgects\\Python\\SdkAnalysis\\baksmali.jar'
根据自身情况修改输出文件路径,本示例如下:
reportPath = "D:\\MyProgects\\Python\SdkAnalysis\\logout\\UmengSDKReport.txt"
总结要查找的 SDK 的特征值:
# sdk feature
# 友盟
umengStr = "com.umeng"
# 极光
JAnalyStr = "JAnalyticsInterface" # 极光统计
JPushStr = "JPushInterface" # 极光推送
JMessageStr = "JMessageClient" # 极光IM
JShareStr = "JShareInterface" # 极光分享
# 个推
GTStr = "getui"
GTStr_1 = "GTIntentService"
GTStr_2 = "GetuiPushService"
# 个数
GSStr_1 = 'GsManager '
GSStr_2 = 'GsConfig '
# 个像
GI = 'GInsightManager '
# TalkingData
TalkingDataStr = "TCAgent"
# Mob
MobSDKStr = "MobSDK"
# 数盟
DUSDKStr = "cn\shuzilm\core"
# 数美
SMSDKStr = "SmAntiFraud"
# 易观方舟
YGSDKStr = "AnalysysAgent"
# 网易易盾
WANGYIStr = "watchman"
***注意:***经分析,推送类 SDK 与大多数其他的分析类 SDK 不同,只是实现简单的发送和接受功能。而其他的sdk大多具备完整数据能力,因此对极光和个推的 SDK 类别做了区分。
至此,我们可以开启 apk 解析之旅了,启动项目。
报告输出以 SDK 为单位,打印集成 SDK 的应用包名(下载后的apk名称),这样可以更方便的看到对应 SDK 都被哪些 apk 所集成。
项目中报告的路径如下:
以 JGSDKReport 为例,内部结构如下:
<========================== 极光 SDK 集成情况 ===========================>
app name ====> com.kuaikan.comic_5.40.0_540000 JPush SDK
app name ====> com.kuaikan.comic_5.40.0_540000 JAnalytic SDK
内容主要有APP名称,所集成的SDK名;可根据自身需求修改输出格式。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型