加壳思路:

将源apk经过native方法加密后与壳dex合并

所遇到的坑:

1,首先了解Android动态加载机制

classloader的双亲委托模式,application创建、初始化过程,attachBaseContext(),onCreate()方法执行的节点

如何使用DexClassLoader将加载的activity,放入其正常的生命周期内?

如何切换创建执行原application的生命周期?

2,了解Java反射

3,注意修改AndroidManifest.xml文件,将源activity在壳的配置文件中声明;添加meta-data标签

4,将源activity的配置文件拷贝到壳apk的对应位置,(res/)


加壳后apk无法运行:

java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation

原因:应该是壳apk 和 源apk引用的类库不一样,导致类实现出现问题;然后重新定义了源apk和壳apk的activity,使其统一继承于Activity超类。

results matching ""

    No results matching ""