2.魔改xposed修改和重编译生产可用zip

android源码

前面已经进行了android源码的安装,这次我对xposed进行定制编译

Xposed Art

# 克隆自己需要的版本出来
git clone https://github.com/rovo89/android_art.git -b xposed-nougat-mr2  art

# 备份android源码中的art
mv ./android/source/art ../art_bak

# 拷贝xposed-art进去
mv art ./android/source/art
定制xposed

此模块不需要进行修改

XposedTools

# 克隆项目
git clone https://github.com/rovo89/XposedTools.git
定制xposed

Xp框架的编译器 打包出可以刷机的zip 以下两个是打包脚本和刷机包脚本文件内容改成你对应的就好了
flash-script.sh不改刷机就会报错 缺少xpsoed.prop。

将build.conf.smaple 拷贝一份成build.conf,配置如下

[General]
outdir = /home/godtoy/android/out
# javadir = /android/XposedBridge
javadir = /home/godtoy/android/xposed-to-mask/XposedMaskBridge

[Build]
# Please keep the base version number and add your custom suffix
version = 89 (build by godtoy / %s)
makeflags = -j8

[GPG]
sign = release
user = 852109AA!

# Root directories of the AOSP source tree per SDK version
[AospDir]
25 = /home/godtoy/android/source/android-7.1.2_r39
# 19 = /android/aosp/440
# 21 = /android/aosp/500

# SDKs to be used for compiling BusyBox
# Needs https://github.com/rovo89/android_external_busybox
[BusyBox]
arm = 21
x86 = 21
armv5 = 17

文件修改
build.pl flash-script.sh修改
xposed.propxxx.prop
XposedBridge.jar自定义 XXXBridge.jar
libxposed_artlibxxx_art
app_process_xposedapp_process_xxx
app_process64_xposedapp_process64_xxx

如果想修改生产的proccess_xposed 可以修改flash-script.sh,其实也没必要

# line-56
install_and_link() {
  TARGET=$1
  # //
  XPOSED="${1}_mask"

Xposed Bridge

该模块提供了一些java调用的api,同时也会内置一个brigde到编译目录,这块我们克隆代码后直接放到自己win或者mac系统进行编译就可以,然后把编译的包拷贝到指定目录即可 最新版本v89

git clone https://github.com/rovo89/XposedBridge.git
定制xposed
文件修改
整体包名com.xxx.xxx 之类的
XposedBridge.jar修改xxxBridge.jar 这个到时候需要
XposedInit.java参数
INSTALLER_PACKAGE_NAME修改包名
app_process_xposed修改
app_process64_xposed修改

调整process生成的名字

  LOCAL_SRC_FILES := app_main2.cpp
  LOCAL_MULTILIB := both
  # LOCAL_MODULE_STEM_32 := app_process32_xposed
  # LOCAL_MODULE_STEM_64 := app_process64_xposed
  LOCAL_MODULE_STEM_32 := app_process32_mask
  LOCAL_MODULE_STEM_64 := app_process64_mask

定制后可以查看第三篇xposedBridge打包,打包好分为2块,一块包含了apk文件的,可以拷贝的 XposedTools>build.conf 的配置目录下

2019-12-09-11-20-00

Xposed

xposed这块是提供了一些api,定制需求替换掉删除线内容即可

参考:https://blog.csdn.net/qq_35834055/article/details/103256122

libxposed_common.h改成你修改后的XposedBridge包名
CLASS_XPOSED_BRIDGE更改前: de/robv/android/xposed/XposedBridge
CLASS_ZYGOTE_SERVICE更改前: de/robv/android/xposed /services/ZygoteService
CLASS_FILE_RESULT更改前: de/robv/android/xposed /services/FileResult
xposed.h修改
XPOSED_PROP_FILE/system/xxx.prop 改成你之前APK时候改的
XPOSED_JAR/system/framework/XXXBridge.jar
XPOSED_LIB_ARTlibxposed_art.so 随便改个名字后面修改会用到 libxxx_art
XPOSED_CLASS_DOTS_ZYGOTEde.robv.android.xposed .XposedBridge 改成你之前定义的包名
XPOSED_CLASS_DOTS_TOOLSde.robv.android.xposed.XposedBridge$ToolEntryPoint
xposed_service.cpp改成你修改后的XposedBridge包名
IMPLEMENT_META_INTERFACE更改前: de/robv/android/xposed/IXposedService
xposed_shared.h改成你修改后的APK包名
XPOSED_DIR更改前: 更改前: /data/data/de/robv/android/xposed.installer
ART.mk libxposed_art.cpp修改成你定义的AS右键直接改名称 记得把.mk文件里的也改了
libxposed_artlibtest_art

执行编译

# !!以下操作在一个terminal中发生
# 进入到android目录,执行初始化环境变量
chmod +x ./build/envsetup.sh
source ./build/envsetup.sh
# 直接执行lunch,如果没有就需要使用apt进行安装即可
lunch
lunch aosp_arm64-eng
# 切换到XposedTools目录 执行构建,如果build.pl执行失败,请参考QA中提到的内容问题
./build.pl -t arm64:25

构建完毕

QA

在perl环境安装过程中有很多问题,基本百度都有解决方案

Q:Can’t locate Config/IniFiles.pm in @INC (you may need to install the Config::IniFiles module)
A:安装模块

perl -MCPAN -e 'install Config::IniFiles'
perl -MCPAN -e 'install File::Tail'
perl -MCPAN -e 'install File::ReadBackwards'
sudo aptitude install Config::IniFiles
sudo aptitude install File::ReadBackwards
sudo aptitude install File::Tail
sudo apt install libconfig-inifiles-perl -y

最终
2019-12-09-08-21-24

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值