Android原始碼怎麼編譯adb?
編譯系統是Ubuntu 16.04,64位,Android原始碼版本為5.0.2和4.4。
編譯adb不需要先把整個原始碼都編譯通過,下載到的原始碼直接就可以編出adb。
下面是編譯過程:
1. 在終端cd到Android原始碼根目錄
2. 準備編譯環境
# source ./build/envsetup.sh
# lunch然後選擇某個版本
3. 編譯adb
有幾種方式:
方式1:
# make -j8 adb
方式2:
# mmm system/core/adb/
方式3:
# cd system/core/adb/
# mm
最後生成的adb檔案:out/host/linux-x86/bin/adb。
3種編譯方式對比:
只對一行程式碼加註釋,3者的速度:方式1為1m17s,方式2和方式3為2s。
方式1最慢的原因是會遍歷一堆Android.mk檔案,這個過程相當耗時。。。,最後才真正編譯adb。
方式2和方式3差不多,都很快。
推薦使用方式3:因為是在adb目錄下,可以隨時用vi修改檔案,用git檢視檔案的修改情況,即使想回到原始碼根目錄也可以通過croot迅速實現,然後cd -又回到adb目錄。
7.1.2的系統只能使用第1種方式,後兩種方式會提示錯誤:
ninja: error: 'out/target/product/generic_arm64/obj/SHARED_LIBRARIES/libc++_intermediates/export_includes', needed by 'out/target/product/generic_arm64/obj/STATIC_LIBRARIES/libadbd_intermediates/import_includes', missing and no known rule to make it make: *** [ninja_wrapper] Error 1
暫時不知道怎麼解決,有解決方法的同學歡迎留言。
相關推薦
【轉】Android原始碼編譯之ADB編譯
How to build adb, the Android debugger adb is the Android debugger (officially the “Android debug bridge” I think). It is a tool for getti
Android原始碼編譯得到的adb為什麼不識別裝置?
編譯Android原始碼得到的adb不識別裝置,現在把解決過程記錄下來,希望對其他人有所幫助。 現象: Ubuntu 16.04系統,在Android 5.0.2原始碼上,修改adb原始碼,編譯得到adb,執行adb devices不識別裝置,而且adb kill-ser
Android 原始碼編譯make的錯誤處理
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Android原始碼編譯之Nexus5真機編譯
轉載:https://blog.csdn.net/liu1075538266/article/details/51272398 1. 前言 在Android安全的研究工作中,我們時常要對Android進行改進並對其進行原始碼編譯,由於目前幾乎所有的手機廠商均
python 自動操作 android原始碼編譯某一個apk
import os def getCmdEexcuteResult(cmd): tmp = os.popen(cmd).readlines() return tmp def doWork(): cmdList=['adb root', '
Android原始碼編譯jar包BUILD_JAVA_LIBRARY 與BUILD_STATIC_JAVA_LIBRARY的區別
Android原始碼編譯jar包BUILD_JAVA_LIBRARY 與BUILD_STATIC_JAVA_LIBRARY的區別(一) http://www.cnblogs.com/zhhd/p/5392913.html 上面是參考文章的連結,下面是我的編譯指令碼(An
《android原始碼閱讀三》android原始碼編譯匯入android studio
1、安裝 Java 輸入命令 java,報以下錯誤: Command 'java' not found, but can be installed with: sudo apt insta
Android 原始碼編譯環境搭建
我這邊自己使用Ubuntu 14.04 搭建了一個android原始碼的編譯環境,並打包成系統映象,送給不會搭建編譯環境的同學們。 連結:https://pan.baidu.com/s/1boDx
Android 原始碼編譯aidl_language_l 相關錯誤解決
Android 原始碼編譯報錯: Lex: aidl <= frameworks/base/tools/aidl/aidl_language_l.l flex-2.5.39: loadlocale.c:130:_nl_intern_locale_data: ?? 'c
Android原始碼編譯學習問題總結
首先說明下自己的編譯環境 作業系統:Ubuntu 18.10 Android 原始碼版本:Android 8.1.0 kernel 版本: 3.18.0 AOSP 官網的教程 ======================================================
android原始碼編譯(ubuntu16.04 64位)
編譯步驟 1. 原始碼下載; 2. 構建編譯環境; 3.編譯原始碼; 4.執行. 編譯之前首先要下載和安裝repo和gitt工具。 repo和git Google採用Git對AOSP專案進行多倉庫管理. 為了方便需要,對git語句進行了封裝,也就形成了repo.
Android 原始碼編譯 指定userdata.img、system.img、cache.img容量大小【轉】
本文轉載自:https://blog.csdn.net/baodinglaolang/article/details/49791041 修改build/target/board/generic_x86(對應編譯平臺)/BoardConfig.mk檔案BOARD_SYSTEMIMAGE_PARTITION_S
解決Android 原始碼編譯“audio_processing_impl”時,報錯“fatal error: list: No such file or directory”問題
我的系統是Linux Mint 17,使用的平臺是Tiny4412,編譯的是友善之臂提供的Android 4.2.2 原始碼。之前編譯沒有問題,今天編譯時,報出這個錯誤,查遍 百度/Google 都沒解決,後來發現是我之前手賤多配置了一個環境變數 NDK_ROOT 導致的問
Android原始碼編譯環境搭建問題及解決方案小結
1. ImportError: No module named bz2 for Python 2.7.2 (1)$ source build/envsetup.sh (2)$ lunch aosp_arm-eng (3)$ mak
Android原始碼編譯JNI
在android開發中,有時候需要編寫一些C/C++程式碼,這時候就要用到JNI技術,我們需要將C/C++程式首先編譯成so庫,在java中通過native方法呼叫so庫中的函式。 實現以上目的有三種方式: 1、單獨編譯so庫檔案,將它push到手機的sys
Android原始碼編譯如何新增eng 或者userdebug等lunch選項
我們從Google或者github上下載完程式碼,就進入編譯階段 首先進入到原始碼根目錄 /data/projects/cm$ 第一步,執行初始化命令 . build/envsetup.sh第二步,選擇命令 lunch顯示結果 You're building
Android原始碼編譯命令m/mm/mmm/make分析
在前文中,我們分析了Android編譯環境的初始化過程。android編譯環境初始化完成後,我們就可以用m/mm/mmm/make命令編譯原始碼了。當然,這要求每一個模組都有一個Android.mk檔案。Android.mk實際上是一個Makefile指令碼,用來描述模組編譯資訊。Andr
Android原始碼編譯——RK3128開發板基於Android5.1原始碼編譯小記
前言: 本次小記主要分為三段。前兩段相當於對原始碼編譯的一個回顧。本次小記主要第三段,記下了編譯中出現的幾個問題,以便日後需要。 1、編譯時編譯執行緒過多。導致編譯失敗。 2、編譯image沒問題打包OTA時出現錯誤。 一、編譯環境 1、硬體環境:(以
Ubuntu 14.04 搭建MTK Android原始碼編譯環境搭建
安裝必備的工具: BuildEnvironment Requirement ============================================================= * ********* Suggested OS and Tool Cha
Android原始碼編譯make的各類錯誤解決方案彙總
問題: You are attempting to build with the incorrect version of java. Your version is: java version "1.6.0_22". The corr