23 版本以上的v4包_Android致敬:如何开启正式包的Debug模式

一直对Android反编译比较感兴趣,但是没有系统的了解过,只是自己瞎琢磨。计划写写反编译相关的文章,一是进行归纳总结,然后也能督促自己深入去学习下,有兴趣的朋友也可以一起相互讨论学习。01Android致敬?关于名字,为什么要以“致敬”开篇?是这样,我们应该带着学习与敬畏的心态去反编译别人的App,每一个App都倾注了开发者大量心血,之所以去反编译应该是看到有好的地方可以学习,既然是学...
摘要由CSDN通过智能技术生成
一直对Android反编译比较感兴趣,但是没有系统的了解过,只是自己瞎琢磨。计划写写反编译相关的文章,一是进行归纳总结,然后也能督促自己深入去学习下,有兴趣的朋友也可以一起相互讨论学习。
01 Android致敬? 关于名字,为什么要以“致敬”开篇?是这样,我们应该带着学习与敬畏的心态去反编译别人的App,每一个App都倾注了开发者大量心血,之所以去反编译应该是看到有好的地方可以学习,既然是学习,就应该拿出做学生的态度。如果发现了系统漏洞之类的建议通过官方渠道进行反馈,创造一个良性生态。 我 理解 Android开发者 应该有开放的心态,系统的安全不应该是基于私有的算法、进行混淆加固等等方式,在设计之初就应该考虑到被人扒光的情况下如何保证安全。当然如果你开发的App被别人反编译了,不应该气愤或懊恼,反而应当开心,我还有别人可以学习的东西。 所以这里的致敬就是反编译,但更是带着学习交流的赤诚之心,不应有其他利益驱使。 02 Release & Debug 通常情况下使用如下两个命令就可以分别打出Release、Debug安装包了。
# 打Release版本apk
./gradlew clean app:assembleRelease
# 打Debug版本apk
./gradlew clean app:assembleDebug
这里新建一个项目,目前AS最新稳定版本(4.1.1),后续大家再看这篇文章,估计会想一会儿,然后心里默念,好古老的版本[滑稽]。当然和版本其实没多大关系。可以对比下,这两个安装包在大小上还是有很大差异的。

a7c45e240692a79ef7358e11a4aa8e92.png

Release Apk和Debug Apk对比

借助AS提供的能力,我们可以看到对应的文件大小、以及部分文件的内容。我们把AndroidManifest.xml拷贝出来对比下差异。
zhouwenkai@zhouwenkaideMacBook-Pro Desktop % diff AndroidManifest_Debug.xml AndroidManifest_Release.xml
20d19
"true"
可以看到,Debug版本的Apk内AndroidManifest.xml文件多了一行android:debuggable="true",这里添加的这个debug标识会作用在ApplicatonInfo上,我们小时候写代码判断是否是Debug包就是这么获取的。
fun isDebugApp(context: Context): Boolean {
    
    return try {
        context.applicationInfo.flags and ApplicationInfo.FLAG_DEBUGGABLE != 0
    } catch (x: Exception) {
        false
    }
}
按照上面的要对比到猴年马月,我们把两个Apk解压下,再对比下文件。
zhouwenkai@zhouwenkaideMacBook-Pro Desktop % diff -r app-debug app-release
1. Binary files app-debug/AndroidManifest.xml and app-release/AndroidManifest.xml differ
2. Only in app-debug/META-INF: CERT.RSA
3. Only in app-debug/META-INF: CERT.SF
4. Only in app-debug/META-INF: MANIFEST.MF
5. Only in app-debug/META-INF: app_debug.kotlin_module
6. Only in app-release/META-INF: app_release.kotlin_module
7. Binary files app-debug/classes.dex and app-release/classes.dex differ
8. Binary files app-debug/res/drawable-hdpi-v4/ic_launcher_background.png and app-release/res/drawable-hdpi-v4/ic_launcher_background.png differ
9. Binary files app-debug/res/drawable-ldpi-v4/ic_launcher_background.png and app-release/res/drawable-ldpi-v4/ic_launcher_background.png differ
10. Binary files app-debug/res/drawable-mdpi-v4/ic_launcher_background.png and app-release/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值