Ubuntu18.04下编译Xposed笔记记录

 

系统:Ubuntu 18.04.1 LTS

Windows 环境下载 Android 源码的传送门https://blog.csdn.net/freekiteyu/article/details/70939672

下载Android源码:

   下载的Android源码前的准备(如果没有翻墙梯子,建议使用国内清华镜像

     谷歌官方Android源码下载文档连接:https//source.android.com/setup/build/downloading

     国内清华镜像Android源码下载文档连接:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

     配置好可以国内使用的repo文件:链接:https://pan.baidu.com/s/1gfsvYPnPVc5mDws8yIlYlQ  提取码:pxoh 
 

     1、下载repo工具

  mkdir ~/bin

  PATH=~/bin:$PATH

  curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

  chmod a+x ~/bin/repo

   2、创建存放源码的路径
        这个不用说,直接使用mkdir命令就行,比如我要在当前路径创建一个Android文件夹用来存放源码。

  mkdir Android
    
  cd  Android

   3、使用repo工具初始化仓库,并指定要下载的Android的源码版本。 
   谷歌官方初始化仓库方法(拥有翻墙梯子的大佬请随意)

  repo init -u https://android.googlesource.com/platform/manifest

如果没有梯子,就是用国内清华镜像仓库,步骤如下:(建议使用)

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

 

  下面然后方法初始化仓库

  # repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest

  如果需要某个特定的Android版本(Android版本列表(貌似需要梯子才可以打开这个连接)):

    谷歌官方方法:

  repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

     清华镜像方法:

# repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-8.1.0_r17

   4,下载Android源代码树

  repo sync

 

编译Android源码   :

        编译前的准备工作:

             Openjdk安装文档:http://openjdk.java.net/install/index.html

           1、下载安装Openjak

               JDK的要求(下图来自谷歌官方文档:链接):

                 安装成功对应的Openjdk后,终端输入以下命令检查JDK是否安装成功

  java  -version
 
  javac -version

         输入命令后出现如下内容表示安装成功

      不知道什么原因Ubuntu 18.04 命令下载不了Openjdk7,所以参看以下链接安装Openjdk7:Ubuntu18.04安装JDK7的方法   

2、开始编译Android源码

      安装环境

apt-get install -y python3 git less vim libncurses5 git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip

      终端进入源码根目录下,依次输入以下命令

source build/envsetup.sh  或者 . build/envsetup.sh
lunch aosp_arm-eng
make -j4

编译途中会遇到各种错误,以下是在编译途中遇到的某些错误解决方法的链接记录,以备以后只需:

  参考链接1:https://blog.csdn.net/u012195899/article/details/82078384

  参考链接2:https://blog.csdn.net/zlp1992/article/details/48574499

  参考链接3:https://tieba.baidu.com/p/5665676363?red_tag=1050921454

  参考链接4:http://0123.blog.163.com/blog/static/4788312014628103727999/

  参考链接5:https://blog.csdn.net/sbqakqux/article/details/26560859 

  参考链接6:https://blog.csdn.net/ztguang/article/details/52856076

  参考连接7:https://blog.csdn.net/cwh250/article/details/81948564

最终编译成功的效果,出现  #### make completed successfully (02:47:06 (hh:mm:ss)) ####  证明编译成功:

 

编译XposedTools源码准备:

      编译Xposed前的准备:

         源码编译文档地址:https://github.com/rovo89/XposedTools

         XposedTools 文件地址:https://github.com/rovo89/XposedTools

         Xposed 文件地址:https://github.com/rovo89/Xposed

         XposedBridge文件地址 :https://github.com/rovo89/XposedBridge

         Xposed_art文件地址:https://github.com/rovo89/android_art

         还要准备Android源码对应版本的SDK,可以下载个 Android Studio 里面可以下载SDK(当然不建议这么做,但是有一点可以肯定这样下载的肯定不会错),

    1、使用终端进入Android源码根目录后,进入  framework/base/cmds 目录:

cd frameworks/base/cmds

       接着执行下面命令,下载Xposed文件(当然可以使有上面链接下载之后,手动拷贝到  framework/base/cmds 下):

git clone https://github.com/rovo89/Xposed.git xposed

 2、替换Android源码中的art文件为Xposed_art的art文件:   

      在替换之前可以备份一下Android源码中的art,替换时可以选择删除原来的art,然后在Android源码根目录以下命令,同上可以选择手动替换:

git clone https://github.com/rovo89/android_art.git art

 3、开始编译:

    找个位置创建一个文件夹,并下载XposedTools文件夹和XposedBridge文件到这个目录下面,创建完并进入了文件夹后可以使有下面命令下载XposedTools文件夹和XposedBridge文件两文件

git clone https://github.com/rovo89/XposedTools.git XposedTools
git clone https://github.com/rovo89/XposedBridge.git XposedBridge

    接着cd到XposedTools目录下创建一个名为 build.conf 的配置文件 

    配置如下内容,以下内容也可以从XposedTools目录下的 build.conf.sample 中复制(只要修改下下面三个地方就好了):

[General]
outdir = /home/abc/Xposed/out             # 这是最后编译成功后生成文件的目录
javadir = /home/abc/Xposed/XposedBridge   # 放置XposedBridge文件的路径

[Build]
# Please keep the base version number and add your custom suffix
version = 89 (custom build by xyz / %s)   # 对应xposed版本号
# makeflags = -j4

[GPG]
sign = release
user = 852109AA!

# Root directories of the AOSP source tree per SDK version
[AospDir]
# 19 = /android/aosp/440
# 21 = /android/aosp/500
# 23 = /home/abc/Android-6.0.1
22 = /home/abc/Android-5.1.1    # 前面的数字是对应的SDK版本,后面是Android源码根目录的完整路径

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

  接着在XposedTools根目录下使用命令将 XposedBridge 文件编译成 XposedBridge.jar文件

 ./build.pl -a java

接着你可能如下报错:

  这是由于Openjdk版本问题,因为在编译Android5 ~6版本的源码时,需要使用Openjdk7,而这里需要使用Openjdk8,切换下版本即可(前提是的安装Openjdk8,上面也有安装链接)

Openjdk版本切换:

 sudo update-alternatives --config java
 sudo update-alternatives --config javac

             

接着继续报错....:

 解决办法: 添加 android-sdk 路劲到 .../XposedBridge 根目录下的"local.properties"中,  或者加入ANDROID_HOME 环境变量

echo "sdk.dir=/android-sdk" ../XposedBridge/local.properties

通过进入最后一段的路径进入即可看到这的文件,即表示XposedBridge编译成功:

 

接着输入命令:

./build.pl -t arm:22

出现如下图所示,即为编译完成

   最终根据提示的路径可以得到如图中的几个文件,就表示安装成功  :

 初次学习自己编译Xposed,并做的记录,如有不对地方欢迎指出                               

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值