Xposed 集成 Android 6.0.1環境中,總結

  因爲工做須要,須要將xposed集成到android源碼中,生成新的ROM就自帶xposed的功能。html

下面大致上說一下步驟和遇到的問題。java

一、下載,並編譯android源碼,成功。linux

二、下載 https://github.com/rovo89/android_art 中,在release中找到當前6.0對應的sdk23版本。替換到android源碼,根目錄下的art文件夾中的內容。android

三、下載 https://github.com/rovo89/XposedBridge ,獲得Xposed文件夾XposedBridge-art,或者特定版本。將文件夾拷貝到,Android源碼根目錄和art同級。git

   3.一、XposedBridge-art源碼中,新建Android.mk用於編譯XposedBridge-art生成對應的XposedBridge.jar .Android.mk文件內容以下:github

 1 # Copyright 2007 The Android Open Source Project
 2 #
 3 LOCAL_PATH:= $(call my-dir)
 4 include $(CLEAR_VARS)
 5 LOCAL_DEX_PREOPT = false
 6 LOCAL_MODULE := XposedBridge
 7 
 8 LOCAL_SRC_FILES := \
 9      $(call all-java-files-under, src) \
10      $(call all-java-files-under, lib/apache-commons-lang/external) \
11      $(call all-java-files-under, hiddenapistubs/src)
12 
13 include $(BUILD_JAVA_LIBRARY)
14 
15 $(LOCAL_INTERMEDIA_TARGETS): PRIVATE_EXTRA_JAR_ARGS := -C "$(LOCAL_PATH)" \
16 assets -C "#(LOCAL_PATH)" NOTICE.txt
17 
18 include $(call all-makefiles-under, $(LOCAL_PATH))
Android.mk

       3.二、Android源碼根目錄,執行命令(多個)apache

source build/envsetup.sh
lunch 17
mmm XposedBridge-art

       3.三、若是成功,會在out/target/product/angler/system/framework/XposedBridge.jarubuntu

       3.四、若是失敗,可能出現錯誤以下:build/core/host_shared_library_internal.mk:44api

須要在android源碼根目錄執行命令:app

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

四、下載 https://github.com/rovo89/Xposed 獲得Xposed C++的代碼,拷貝到 源碼根目錄下frameworks/base/cmds/xposed中。

五、下載 https://github.com/rovo89/XposedTools 獲得 XposedTools工具,用於執行perl腳本,用於編譯xposed,下載保存的位置無特定要求,因此我沒有放到android源碼目錄中。

  5.一、源碼外部,新建文件夾保存,XposedTools內容。

  5.二、根據XposedTools源碼中的build.conf.sample新建一個文件build.conf。編輯內容,以下:

[General]
# 註釋,可刪除:指定,輸出編譯結果目錄
outdir = /var/android_source/xposed/XposedTools-89/out
[Build]
# 版本無所謂
version = 1(custom build by author )
makeflags = -j16
[AospDir]
# Android源碼根目錄
23 = /var/android_source/android6.0.1
View Code

  5.三、拷貝,生成的XposedBridge.jar到XposedTools中,XposedTools-89/out/java/XposedBridge.jar 沒有的文件夾,請新建。

  5.四、執行命令:./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.五、再次編譯,能夠看到生成了,會在XposedTools的out/arm23中,找到咱們生成的,正確的,app_process32_xposed,發現android源碼中也被拷貝了一份。。。

注意:

  一、替換art以後,編譯可能仍是會遇到CLANG錯誤,須要再次修改配置文件。art/build/Android.common_build.mk,解決CLANG錯誤

  二、版本選擇同樣。

  三、不一樣產品文件夾不同,請根據本身的版本和手機選擇。

資料:參考文獻

Xposed 編譯(二) - 編譯 Android 源碼 https://www.jianshu.com/p/c14eafe5e1d7

Xposed 編譯(二) - 編譯 Android 源碼   https://blog.csdn.net/weixin_33832340/article/details/87512976

編譯Xposed http://www.javashuo.com/article/p-veprvhet-dg.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源碼編譯與集成 http://www.javashuo.com/article/p-fszkgpij-eh.html

makefile中常見的錯誤—missing separator. Stop.—緣由命令行缺乏tab鍵 https://blog.csdn.net/dumgeewang/article/details/7709412

還有等等,參考了不少,已經窗口關閉,找不到了。。。

相關文章
相關標籤/搜索