什么是AOSP
开源性:AOSP的源代码公开,任何人都可以获取和修改,适合想要开发或自定义安卓系统的开发者。
灵活性:AOSP提供了基本的安卓功能,制造商可以基于AOSP开发出自己的定制系统(如三星的One UI、小米的MIUI、华为的EMUI等)。
参考标准:AOSP作为安卓系统的基础,为安卓生态系统中的硬件和软件提供了一个标准。任何符合AOSP标准的应用都可以在AOSP基础上运行。
不包含Google服务:AOSP并不包含Google Play服务(如Google Play商店、Gmail等),这些服务是Google专有的。在中国市场或不依赖Google服务的设备上,厂商可以基于AOSP构建自己的应用商店和服务体系。
脱壳能干吗
Root检测绕过
脱壳机
集成证书
过root检测
如果root之后手机会有信息特征,app可以通过这些特征来达到闪退或者白屏得效果
检测情况
比如在系统目录下有没有su命令
/system/app/Superuser.apk
/sbin/su
/system/bin/su
/system/xbin/su
/data/local/xbin/su
/data/local/bin/su
/system/sd/xbin/su
/system/bin/.ext/.su
root权限可能会改变设备的某些系统属性,应用可以通过检查这些属性来判断。
例如,通过读取getprop命令的输出查看系统参数,或检查ro.debuggable、ro.secure属性是否被更改。
将AOSP导入到Clion
在~/bin/aosp 目录中执行下面得操作
source build/envsetup.sh
lunch
然后选择自己的版本
继续输入下面的
export SOONG_GEN_CMAKEFILES=1
export SOONG_GEN_CMAKEFILES_DEBUG=1
然后进行构建
用clion打开下面得目录
/bin/aosp/out/development/ide/clion/art/runtime/libart-arm64-android
将AOSP导入到Android Studio
source ~/bin/aosp/build/envsetup.sh
mmm development/tools/idegen/
用于编译 AOSP(Android 开源项目)中的 idegen 模块的命令。
idegen 是一个工具,专门为在 IDE(集成开发环境)中查看和编辑 AOSP 源码而设计。
通过编译 idegen,可以生成适用于 Android Studio 或 IntelliJ IDEA 的工程配置文件(如 .ipr 和 .iml 文件),从而方便地在这些 IDE 中导入和浏览 AOSP 源码。
development/tools/idegen/idegen.sh
如果显示权限不足没关系 等待即可
如果完成了会生成
ls ~/bin/aosp/ | grep andro
android.iml
android.ipr
之后配置Android Studio
1.先创建一个空项目 然后让他去加载gradle 图在下面 这个时间很长感兴趣的可以配置国内源
https://blog.csdn.net/github_74110837/article/details/143092695
上面你那个博客是更还源
2.在设置栏搜索Android S 找到Android SDK 然后在SDK Platforms中 下载 你所需要的安卓版本 我这里是 10 和11
3 在设置栏目中找到 SDKTools中 下载NDK CMake 这两个 图在下面
用 android studio打开 ~/bin/aosp/android,ipr 这时间就很长了 大概得半个小时了
脱壳
正向开发
先需要将app打包成apk 之后在进行加壳 使用第三方加固 也就是将apk提交给第三方加固 然后就可以发布app了
加固方式有
VMP加固 虚拟机保护 (自定义虚拟机)虚拟机运行此代码 -> 手机在运行
整体加固 直接整体加固
抽取加固 只有骨架没有血肉 执行功能填充 整体思路就是主动运行某个方法的时候抽出来保存
其实大型app对速度有要求的一般都是不加壳的
文件修改
关闭 senlinux
~/bin/aosp/system/core/init/selinux.cpp
如果没动过话 在106行数 加入 return false
开启adbd得root权限
~/bin/aosp/system/core/adb/daemon/main.cpp
去除aosp特征值
下两个是指纹信息是该Android版本在于app眼中是什么存在
正式版本
调试版本
所以要改成正式版本
/aosp/build/tools/buildinfo.sh
/aosp/build/tools/buildinfo_common.sh
还有其他特征值
修改PTRACE_TRACEME
~/bin/aosp/bionic/libc/bionic/ptrace.cpp
获取当前进程id 并且获取 prtace进程 那么就退出
修改得地方如下图
证书增添
将弄好得证书放入到
~/bin/aosp/system/ca-certificates/files
证书如何处理的话可以看我以前的文章