AI手机网,短视频直播 硬改改机 一键新机 群控软件 刷机定制

 找回密码
 立即注册
搜索
查看: 1893|回复: 1

xposed源码编译--源码及工具概述

[复制链接]
发表于 2020-5-7 12:58:34 | 显示全部楼层 |阅读模式
xposed编译系类文章
xposed源码编译--源码及工具概述xposed源码编译--第一步android源码编译以及环境配置xposed源码编译--第2步编译XposedBridgexposed源码编译--第3步编译XposedInstall.apkXposed源码编辑&安装--第4步di自定义Xposed框架(涉及商业机密仅罗列大纲,细节暂时不便公开,细节放在有道云)





编译xposed环境
  • ubuntu16.04
  • jdk (Android 4.4之前使用oracle jdk;android5.1源码编译需要使用openjdk7,不再使用oracle的jdk;android6.0源码编译需要使用openjdk8)
  • gradle 4.6

编译xposed可能涉及的工具
  • envsetup.sh  :Android源码自带的编译环境
  • XposedTools:Xposed官方提供编译Xposed源码的工具
XposedTools是官方提供的一套工具集,方便用来编译和打包Xposed框架。

xposedtool编译有arm,arm64,x86三项对应文件夹,里面有两个脚本注意下build.pl和uninstall_build.pl两个perl脚本执行在shell中




git clone https://github.com/rovo89/XposedTools.git复制代码

编译xposed可能涉及的源码
  • Android 源码:
  • Xposed源码:(git上的Xposed仓库和art仓库)
  • XposedBridge源码:
  • XposedInstall源码:
  • Xposed_art源码:

Xposed的所以源码参见github.com/rovo89

Android 源码
附上华为荣耀源码下载地址



https://club.huawei.com/thread-6741499-1-1.html复制代码
荣耀7 开源代码(PLK-AL10&TL01H&UL00&CL00&TL00,Android5.0.2,EMUI3.1,kernel,中国区)
下载:download-c.huawei.com/download/do…



使用7za x android-XXXX.7z  -r -o./命令解压android-4.4.4_r1.7z,android-5.0.2_r1.7z,android-5.1.1_r1.7z,android-6.0.1_r72.7z,android-7.0.0_r1.7z,android-7.1.2_r1.7z,如果出现错误请忽略

编译Xposed前,android源码要先编译一次。版本分别arm,arm64,x86对应的,在lunch时分别选择对应的aosp_arm-eng,aosp_arm64-eng,aosp_x86-eng。

查看源码版本的方法:在源码路径下,查看/build/core/build_id.mk文件中的BUILD_ID即为源码的版本号。



android 源码编译4步骤




#下载并解压android源码#初始化编译环境---命令是用来将envsetup.sh里的所有用到的命令加载到环境变量里去source  build/envsetup.sh#选择版本 ---lunch命令是envsetup.sh里定义的一个命令,用来让用户选择编译项,来定义Product和编译过程中用到的全局变量。lunch#编译android源码 ---就是让8个线程让4个核心竞争的执行;如果是16线程则用16make –j8复制代码

Xposed源码Xposed native部分,该部分主要提供给XposedBridge可调用api和调用修改过的android_art的api,还有生成可替换的app_process程序
github.com/rovo89/Xpos…


1. 配置每一个android版本都对应xposed_androidXXXX.zip的xposed压缩包。
2. 除了android4.4,android每一个版本都有对应的xposed_art_androidXXXX.zip的art压缩包。


XposedBridge源码(Android 4.4 用54的eclipse版本,5.0开始用89android studio版)
android4.4的xposedbridge用是xposedbridge-master_54(master分支)和xposedbridge-master_eclipse_54

https://github.com/rovo89/XposedBridge下载master分支解压出来
androidstudio 导入eclipse项目,选择解压的文件夹
AndroidStudio 编译 XposedBridge 54版-csdn


Android4.4之后的xposedbridge是用xposedbridge-89(art分支)
xposedbaiebridge.jar的编译分成两种一个提供给Xposed的模块开发者api的xposedbaiebridge.jar(给插件用的,就是你的项目调用需要的)

cd aosp_dir/framework/base/cmds/xposedgit clone https://github.com/rovo89/XposedBridge.git复制代码
然后导入Android Studio中,点Build->Rebuild Project,会在app/build/intermediates/transformpreDex/release目录下生成.jar文件,将生成的jar文件重命名为XposedBridge.jar,放入Android源码目录下的out/java/下
注:如果想生成供Xposed模块调用的XposedBridge.jar,则在Android Studio的右侧打开Gradle Project,双击jarStubs就会在app/build/api生成api.jar



XposedInstall源码xposed 框架安装器,用于安装xposed_art_androidXXXX.zip 和xposed部分的代码到手机。
android4.4对应的xposedinstaller2.7,其他android版本用的是xposedinstaller3.1.5版本。

android4.4之后,android每一个版本都有对应的xposed_art_androidXXXX.zip的art压缩包。

git clone https://github.com/rovo89/XposedInstaller./gradlew./gradlew build# 请使用java 1.8 进行编译复制代码Xposed_art源码(Android 4.4之后才需要)用Xposed 的art替换Android 的art :android 4.4之后,Xposed为了支持新的runtime,修改了art的源码.我们需要把原来的art源码替换成Xposed提供的代码。

将Android源码下的art目录移动到其他路径备份,比如Android源码的上层路径。在Android源码目录执行git clone https://github.com/rovo89/android_art -b xposed-nougat-mr2 art,将修改过的android art下载到Android源码根目录。




cd aosp_dirrm -rf artgit clone https://github.com/rovo89/android_art.git artcd artgit checkout xposed-lollipop-mr1复制代码
注:如果是android7.1.2选择的分支是xposed-nougat-mr2.


下个目标VirturalXposed或Exposed研究VirtualXposed或EXposed

https://github.com/android-hacker/VirtualXposed

参考资料Android 编译Google官方教程https://source.android.com/source/building

AndroidStudio 编译 XposedBridge 54版-csdn

Xposed - General info, versions & changelog


作者:牵手生活
链接:https://juejin.im/post/5be8dff2f265da61417118ed

发表于 2020-6-1 11:43:56 | 显示全部楼层
谢谢老大分享,请教xposed怎么去掉检测啊?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

技术交流售后群

QQ|小黑屋|手机版|站点找错-建议|AI手机网 |Sitemap



GMT+8, 2024-5-20 10:34 , Processed in 0.153441 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表