文档章节

Android资源混淆打包工具

博为峰教研组
 博为峰教研组
发布于 2017/03/29 20:09
字数 359
阅读 12
收藏 0

首先我们对resources.arsc的文件格式有一定的了解。resources.arsc一共有5种chunk类型,分别为TYPETABLE,TYPEPACKAGE,TYPE_STRING,TYPE_TYPE,TYPECONFIG。

--table,使整个reousces table的开始,它的chunksize即是整个文件的大小。

--package,指的是一个package的开始,其实在resources.arsc是可以有多个package的。而packageID即是资源resID的最高八位,一般来说Android系统的是1(0x01),普通的例如com.tencent.mm可能会是127(0x7f),剩下的是从2开始起步。当然这个我们在aapt也是可以指定的(1-127即八位的合法空间,一些混合编译就是改变这个packageID)。

--string,代表stringblock,我们一共有三种类型的stringblock。分别是table stringblock,typename stringblock,specaname stringblock。

--type,这里讲的是typename stringblock里面我们用到的各种type(用到多少种类型的type就有多少个type chunk),例如attr,drawable,layout,id,color,anim等,Type ID是紧跟着Package ID。

--config,即是Android用来描述资源维度,例如横竖屏,屏幕密度,语言等。对于每一种type,它定义了多少种config,它后面就紧跟着多少个config chunk,例如我们定义了drawable-mdpi,drawable-hdpi,那后面就会有两个config。

--entry,尽管没有entry这个chunk,但每个config里面都会有很多个entry,例如drawable-mdpi中icon1.png和icon2.png两个drawable,那在mdpi这个config中就存在两个entry。

 

 

 

© 著作权归作者所有

博为峰教研组
粉丝 51
博文 1224
码字总数 479077
作品 0
黄浦
程序员
私信 提问
Android的反编译和代码混淆

系列文章: Android的反编译和代码混淆 Android的打包签名 Android的多渠道打包 前言 包括以下内容 要反编译apk需要下面3个工具 反编译资源文件 反编译类文件 代码混淆 要反编译apk需要下面3...

跳动的松鼠
2017/11/21
0
0
Android代码混淆,资源混淆,SO混淆

> 代码混淆 通过ProGuard或者DexGuard来保护我们的代码,从而实现相对的代码安全。靠Android资源管理框架来完成的,而Android资源管理框架实际是由AssetManager和Resources两个类来实现的。其...

shareus
2018/05/04
0
0
SimpleNews 项目的重构之旅(5) - Android Gradle 打包&混淆应用

应用场景 之前一直没有做 Android APK 发包管理,所以这次重构把这打包这部分考虑进去,之后可能会发布到一些应用市场。 要实现的功能 混淆代码 实现签名 过滤无用资源 生成 release 版本 AP...

無名小子的杂货铺
2017/06/12
0
0
Android APK瘦身实践

本文记录自己之前做的一些apk瘦身措施,都是在网上搜索整理的通用方法 依据官方文档进行瘦身 参考文章: 压缩代码和资源 启用代码压缩 build.gradle文件中添加如下类似片段: 每次构建后Pro...

小草凡
06/05
0
0
Android studio 使用心得(五)---代码混淆和破解apk

版权声明:本文出自veidy的博客,转载必须注明出处 转载请注明出处:http://my.oschina.net/aibenben/blog/371889 这篇文章等是跟大家分享一在Android studio 进行代码混淆配置。之前大家在e...

veidy
2015/01/26
22.7K
4

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
今天
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
12
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
9
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
82
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部