Android中的APK打包与安全

这篇具有很好参考价值的文章主要介绍了Android中的APK打包与安全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

aapt2命令行实现apk打包

apk文件结构

Android中的APK打包与安全,android,安全,gradle

  • classes.dex:Dex,即Android Dalvik执行文件

  • AndroidManifest.xml:工程中AndroidManifest.xml编译后得到的二进制xml文件

  • META-INF:主要保存各个资源文件的SHA1 hash值,用于校验资源文件是否被篡改,防止二次打包时资源文件被替换,该目录下主要包括下面三个文件:

    • MANIFEST.MF:保存版本号以及对每个文件(包括资源文件)整体的SHA1 hash
    • CERT.SF:保存对每个文件头3行的SHA1 hash
    • CERT.RSA:保存签名和公钥证书
  • res:res目录下资源文件编译后得到的二进制xml文件

  • resources.arsc:包含了所有资源文件的映射,可以理解为资源索引,通过该文件能找到对应的资源文件信息

aapt2打包流程

Android中的APK打包与安全,android,安全,gradle

  1. 通过aapt2打包res资源文件:生成R.java、resoucres.arsc和res文件
  2. 通过Javac编译R.java、Java源文件:生成class文件
  3. 通过d8命令:将class文件和第三方库中的class文件处理生成classes.dex
  4. 通过aapt2工具:将aapt生成的resoucres.arsc和res文件、未编译的资源assets文件和classes.dex一起打包生成apk
  5. 通过zipalign工具:将未签名的apk进行对齐处理
  6. 通过apksigner工具:对上面的apk进行debug或release签名

Android中的APK打包与安全,android,安全,gradle

aapt2命令行实现打包

Android中的APK打包与安全,android,安全,gradle
Android中的APK打包与安全,android,安全,gradle
Android中的APK打包与安全,android,安全,gradle
Android中的APK打包与安全,android,安全,gradle
Android中的APK打包与安全,android,安全,gradle
按照上面的顺序使用各个命令便可以打包生成一个apk包了。

Gradle构建工具打包

如果使用传统的aapt2的方式打包,在多模块的情况下将会十分的麻烦。幸好,gradle已经将上述的命令集成了在了各个task中。
Android中的APK打包与安全,android,安全,gradle文章来源地址https://www.toymoban.com/news/detail-672973.html

APK安全攻守道

风险种类 风险描述 解决方案
App防止反编译 被反编译会暴露客户端逻辑,加密算法,密钥等等 I加密,邦邦加固,360加固包等
资源文件泄漏风险 获取图片,js等文件 资源混淆(AndResGuard),加固等
so文件破解风险 导致核心代码逻辑泄漏 so加固
测试开关的代码被打包发布 通过测试的url,测试账号等对正式服务器进行攻击 正式服务器与测试服务器不要使用同一个
Root设备运行风险 已经root的手机通过获取应用的敏感信息等 root手机禁止应用启动
模拟器运行风险 刷单,模拟虚拟位置等 禁止在虚拟器上运行
截屏攻击风险 对app运行中的界面进行截图或录制来获取用户信息 添加属性getWindow().setFlags(FLAG_SECURE,FLAG_SECURE)不让用户截图和录屏
输入监听风险 用户输入的信息被监听 自定义键盘

到了这里,关于Android中的APK打包与安全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android apk文件打包自定义命名

    前言 在Android Studio中打包生成的APK和aar文件基本上都是module名称+构建类型,常见的都是 app-debug.apk 和 app-release.apk 这种样式的。 显然没有版本号等序号标识的话,管理起来会比较混乱,基于此种情况,我们可以通过修改 build.gradle 文件中的配置来修改生成包的文件名以做区分

    2024年02月13日
    浏览(53)
  • 【Android】反编译APK及重新打包

    1.下载 APK 反编译工具 首先,需要下载一个 APK 反编译工具,例如 Apktool。可以在官网(https://apktool.org/docs/install)上下载最新版本的 Apktool,也可以使用包管理器来安装。 2.反编译 APK 文件 将要修改包名的 APK 文件放到一个新建的文件夹中,然后打开终端(命令行窗口),进入

    2024年04月11日
    浏览(40)
  • Android apk 反编译后打包(含签名)

    想分析某些app源码时,遇到烦人弹框,现在想反编译看看具体实现。 用到的工具: GDA4.06 apk反编译工具 apktool apk 打包工具 jdk 环境 一、反编译分析 将apk反编译打开 找到入口代码 弹框代码如图 二、解包、打包 使用apktool解包 ps: apktool工具的用法自行百度 -o模式是指定解包后文

    2024年02月09日
    浏览(40)
  • Android反编译修改apk并重新打包

            Apktool 是反编译Apk的第三方工具,它可以反编译资源,并在修改之后重新生成Apk          注意:apktool 依赖 Java1.8。请使用 java -version 查看,是否为1.8或更高版本。 1. 使用apktool.jar反编译解包 将需要编译的apk和apktool.jar放到同一个文件夹下 在cmd终端,cd到此目录下

    2023年04月13日
    浏览(46)
  • Android打包脚本和上传apk托管平台

    前言 作为Android开发经常需要打包提交测试,多数情况我们都是通过Android studio手动点点进行,后来项目由于环境较多(开发,测试,预发布,发布等),手动打包就容易出错,所以后边就引起通过脚本打包提升效率和准确的需求。 内容部分 编写脚本前,需要在app目录下的

    2024年02月09日
    浏览(34)
  • uniapp离线打包apk - Android Studio

    ​下载 Android Studio 版本最好 4.0以上 ​下载 HBuilder X ​下载 Android离线SDK 注意:HBuilder X 和 离线SDK 版本必须一致(我的版本 3.6.2) Android SDK解压后目录: ​​​​ 以上步骤完成后,在工具栏找到Build,选中Generate Signed Bundle/APK… 在key store password 和 key password中输入密码 ****** (两

    2024年02月10日
    浏览(51)
  • vue3中 打包成apk(android)

    本文仅演示的是打包成android 版本的apk         通过打包命令将vue3项目打包成一个dist文件夹 注意:一般的打包命令为npm run build,特殊设置的修改一下打包命令       有时打包后的文件运行出现白屏问题,可能是绝对路径导致的,在vite.config.js文件中配置base:\\\'./\\\'  图一  解决

    2024年02月16日
    浏览(42)
  • Android studio 打包release版本 apk 换方式了?

     有一段时间没有搞Android,在基本操作打release包的时候竟然一直打包不成功,一直报 Generate Signed APK: APK(s) generated successfully for module \\\'CorrectionPlatform.app\\\' with 0 build variants: 但主要还不提示打包失败; 在经历一段煎熬各种搜索各种找,终于找到了另一种可以生成release包的方法。

    2023年04月09日
    浏览(38)
  • android studio 打包签名apk时报kotlin版本错误

    报错信息如下: /Users/abbb/Library/Android/sdk/caches/transforms-3/572ca993caa0789f4046529ddf3eacd2/transformed/jetified-BaseRecyclerViewAdapterHelper-4.0.1/jars/classes.jar!/META-INF/com.github.CymChad.brvah.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.

    2024年01月25日
    浏览(46)
  • Android之Gradle自动化打包实战

    解放双手,双击桌面快捷方式生成apk包,基于Gradle、bat文件让开发人员告别打包烦扰! 前不久有一个Unity3D研发的小仙女在羽毛球场问我关于Android Studio打apk的一些事情,她说他们运营和测试隔三差五的就坐着她旁边要她重复性的打包(估计是那群痴汉打着工作的幌子实际上干

    2024年02月05日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包