由于工作需要,需要将xposed集成到android源码中,生成新的ROM就自带xposed的功能。

下面大体上说一下步骤和遇到的问题。

1、下载,并编译android源码,成功。

2、下载 https://github.com/rovo89/android_art 中,在release中找到当前6.0对应的sdk23版本。替换到android源码,根目录下的art文件夹中的内容。

3、下载 https://github.com/rovo89/XposedBridge ,得到Xposed文件夹XposedBridge-art,或者特定版本。将文件夹拷贝到,Android源码根目录和art同级。

  3.1、XposedBridge-art源码中,新建Android.mk用于编译XposedBridge-art生成对应的XposedBridge.jar .Android.mk文件内容如下:

 # Copyright  The Android Open Source Project
#
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_DEX_PREOPT = false
LOCAL_MODULE := XposedBridge LOCAL_SRC_FILES := \
$(call all-java-files-under, src) \
$(call all-java-files-under, lib/apache-commons-lang/external) \
$(call all-java-files-under, hiddenapistubs/src) include $(BUILD_JAVA_LIBRARY) $(LOCAL_INTERMEDIA_TARGETS): PRIVATE_EXTRA_JAR_ARGS := -C "$(LOCAL_PATH)" \
assets -C "#(LOCAL_PATH)" NOTICE.txt include $(call all-makefiles-under, $(LOCAL_PATH))

Android.mk

3.2、Android源码根目录,执行命令(多个)

source build/envsetup.sh
lunch
mmm XposedBridge-art

3.3、如果成功,会在out/target/product/angler/system/framework/XposedBridge.jar

3.4、如果失败,可能出现错误如下:build/core/host_shared_library_internal.mk:44

需要在android源码根目录执行命令:

cp /usr/bin/ld.gold  prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld
make update-api

4、下载 https://github.com/rovo89/Xposed 得到Xposed C++的代码,拷贝到 源码根目录下frameworks/base/cmds/xposed中。

5、下载 https://github.com/rovo89/XposedTools 得到 XposedTools工具,用于执行perl脚本,用于编译xposed,下载保存的位置无特定要求,所以我没有放到android源码目录中。

  5.1、源码外部,新建文件夹保存,XposedTools内容。

  5.2、根据XposedTools源码中的build.conf.sample新建一个文件build.conf。编辑内容,如下:

[General]
# 注释,可删除:指定,输出编译结果目录
outdir = /var/android_source/xposed/XposedTools-/out
[Build]
# 版本无所谓
version = (custom build by author )
makeflags = -j16
[AospDir]
# Android源码根目录
= /var/android_source/android6.0.1

  5.3、拷贝,生成的XposedBridge.jar到XposedTools中,XposedTools-89/out/java/XposedBridge.jar 没有的文件夹,请新建。

  5.4、执行命令:./build.pl -t arm:23 可能会缺少环境,就需要安装perl环境了。

先执行,三条命令如下,

apt-cache search Config::IniFiles
libconfig-inifiles-perl - Read .ini-style configuration files
sudo apt install libconfig-inifiles-perl

  Perl环境需求,执行命令,1,2,3

perl -MCPAN -e 'install Config::IniFiles'
perl -MCPAN -e 'install File::Tail'
perl -MCPAN -e 'install File::ReadBackwards'

  5.5、再次编译,可以看到生成了,会在XposedTools的out/arm23中,找到我们生成的,正确的,app_process32_xposed,发现android源码中也被拷贝了一份。。。

注意:

  1、替换art之后,编译可能还是会遇到CLANG错误,需要再次修改配置文件。art/build/Android.common_build.mk,解决CLANG错误

  2、版本选择一样。

  3、不同产品文件夹不一样,请根据自己的版本和手机选择。

资料:参考文献

Xposed 编译(二) - 编译 Android 源码 https://www.jianshu.com/p/c14eafe5e1d7

Xposed 编译(二) - 编译 Android 源码   https://blog.csdn.net/weixin_33832340/article/details/87512976

编译Xposed https://www.cnblogs.com/luoyesiqiu/p/9524651.html

xposed源码编译与集成 https://www.jianshu.com/p/6471bab49cb1

xposed源码编译&安装--第2步编译XposedBridge  https://juejin.im/post/5be3afeae51d4535b07d0f4e   // 朋友的文章,重点推荐,很有帮助。

ubuntu16.04 下android源码编译以及环境配置(含xposed)--交接笔记 https://blog.csdn.net/weixin_34392906/article/details/87531704

xposed源码编译与集成 https://blog.csdn.net/weixin_33726943/article/details/87195857

xposed源码编译与集成 https://www.cnblogs.com/coffee520/p/9648243.html

makefile中常见的错误—missing separator. Stop.—原因命令行缺少tab键 https://blog.csdn.net/dumgeewang/article/details/7709412

还有等等,参考了很多,已经窗口关闭,找不到了。。。

Xposed 集成 Android 6.0.1环境中,总结的更多相关文章

  1. android 5.0开发环境搭建

    Android 5.0 是 Google 于 2014 年 10 月 15 日发布的全新 Android 操作系统.本文将就最新的Android 5.0 开发环境搭建做详细介绍. 工具/原料 jdk- ...

  2. Ubuntu 12.04 64bit 配置完android 5.0编译环境后出现“could not write bytes: Broken pipe.”而无法进入输入帐号密码的登陆界面

    Ubuntu 12.04 64bit 配置完android 5.0编译环境后出现“could not write bytes: Broken pipe.”而无法进入输入帐号密码的登陆界面.上网问了问百 ...

  3. 在Android Studio 0.5.2中使用ArcGIS Android SDK

    环境 操作系统:Mac OSX 10.8.5Android Studio: 0.5.2ArcGIS Android SDK: 10.2.3 操作步骤 在Android Studio中新建一个Modul ...

  4. Android 5.0之应用中实现材料设计—Material Design

    上午的时候在刷Google+,看到了Abraham Williams转发了一篇强文,是Android Developers网站新发的一篇博客—Implementing Material Design ...

  5. Android 3.0 r1 API中文文档(108) —— ExpandableListAdapter

    前言 本章内容是android.widget.ExpandableListAdapter,版本为Android 3.0  r1,翻译来自"深夜未眠",欢迎访问它的博客:" ...

  6. Xposed 在android 6.0上报couldn't load class,找不到xposed_init中配置的入口类

    经测试再android 4.4时是可以直接在android studio中运行debug签名包,在xposed中运行的,但是6.0的机器不好使.解决办法是在运行时使用release版并签名 apply ...

  7. 搭建Android 5.0开发环境

    1.Android SDK的安装 下载地址:http://developer.android.com/index.html 访问网站的话请自备梯子 选择:adt-bundle-windows-x86_ ...

  8. 解决Android 4.0以上版本中OptionsMenu菜单不显示ICON图标的问题

    在Android4.0系统中,创建菜单Menu,通过setIcon方法给菜单添加图标是无效的,图标没有显出来,2.3系统中是可以显示出来的.这个问题的根本原因在于4.0系统中,涉及到菜单的源码类 Me ...

  9. 用.net 2.0(或.net 3.5)开发的程序在.net 4.0的环境中运行的解决方案

    引用:.NET2.0程序集无法在.net 4.0 中运行的解决方案 1. 原来是在.net 2.0 (VS2008)的环境下的程序,通过升级到.net 4.0 (VS2013)导致程序运行不了 提示需 ...

随机推荐

  1. Linux 常用但较容易忘记的命令

    看死循环 strace -p pid 查看系统版本 cat /etc/issue 设置内核启动版本 /etc/lilo.conf , /boot/grub/grub.conf 设置启动模式  /etc ...

  2. IO与文件读写---Java的IO流架构

    http://www.blogjava.net/pengpenglin/archive/2010/03/03/314239.html#314399 http://www.blogjava.net/jo ...

  3. GAN Generative Adversarial Network 生成式对抗网络-相关内容

    参考: https://baijiahao.baidu.com/s?id=1568663805038898&wfr=spider&for=pc Generative Adversari ...

  4. CSS浮动通俗讲解

    首先要知道,div是块级元素,在页面中独占一行,自上而下排列,也就是传说中的流.如下图: 可以看出,即使div1的宽度很小,页面中一行可以容下div1和div2,div2也不会排在div1后边,因为d ...

  5. jquery 动态添加,降低input表单的方法

    html代码例如以下 <html> <tr><button style="margin-left:10px" class="add_fiel ...

  6. Android ListView异步载入图片乱序问题,原因分析及解决方式

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/45586553 在Android全部系统自带的控件其中,ListView这个控件算是 ...

  7. httpclient发送get请求

    /** * 获取httpclient的请求url地址 */ public static String getUrl(){ String url = "http://"+map.ge ...

  8. 【Mongodb教程 第一课补加课2 】MongoDB下,启动服务时,出现“服务没有响应控制功能”解决方法

    如图,如果通过下列代码,添加服务后,使用net start命令出现这样的问题时,可以参考下我的解决方法. D:\MongoDB>mongod --dbpath D:\MongoDB\Data - ...

  9. [IT学习]转载python 项目 计算器

    这个是从网上搜到的Python小项目之计算器(原文地址:http://www.2cto.com/kf/201402/279637.html).但该段代码估计是Python 2 写的. 如果你使用的程序 ...

  10. 错误 1 无法将程序集“NBear.Data.dll”复制到文件“D:\newbpm\bpm\SureBpm\Bin\NBear.Data.dll”。无法将“D:\newbpm\bpm\SureSoft.WebServiceBaseLib\bin\Debug\NBear.Data.dll”添加到网站。 无法添加文件“Bin\NBear.Data.dll”。 拒绝访问。 D:\..

    错误 1 无法将程序集“NBear.Data.dll”复制到文件“D:\newbpm\bpm\SureBpm\Bin\NBear.Data.dll”.无法将“D:\newbpm\bpm\SureSof ...