AOSP:
https://blog.csdn.net/fuchaosz/article/details/52473660
一,使用鏡像下載源碼
清華鏡像:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
1.獲取repo
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
2.repo init
問題:/usr/bin/env: python: No such file or directory
解決:sudo apt-get install python-dev
mkdir source
cd source
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
如果提示無法連接到 gerrit.googlesource.com,可以編輯 ~/bin/repo,把 REPO_URL 一行替換成:
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
如果下載指定版本源碼(如android-cts-6.0_r9),用如下命令:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-cts-6.0_r9
3.同步代碼
repo sync
二,編譯源碼
https://blog.csdn.net/shui1025701856/article/details/80497911
https://source.android.com/setup/initializing#ccache
1.安裝依賴庫
# apt install openjdk-8-jre-headless
# apt install openjdk-8-jdk-headless
# apt install g++-multilib
# apt install gperf
# apt install libxml2-utils
# apt install curl
sudo apt-get install 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
2.設置環境變量
./build/envsetup.sh(或者source build/envsetup.sh)
3.選擇編譯目標
lunch——>會彈出菜單
which would you like?1
4.make -j8
5.運行模擬器
./prebuilts/android-emulator/darwin-x86_64/emulator
$emulator
三,android studio調試源碼
1.#初始化命令工具
soruce build/envsetup.sh
2.#編譯 idegen 模塊,生成idegen.jar
mmm development/tools/idegen/
3.#生成針對 Android 開發工具的配置文件
./development/tools/idegen/idegen.sh
如果提示沒有權限,用chmod命令修改訪問權限。
4.會生成android.iml,android.ipr兩個文件。
android.ipr:工程相關的設置,比如編譯器配置、入口,相關的libraries等。 android.iml:描述了modules,比如modules的路徑,依賴關係等。
5.android Studio——>Open project ——>選擇打開android.ipr
這是會生成android.iws,該文件包含了一些個人工作區的設置。
注意:
如果你是第一次導入源碼, Android Studio 可能需要佔用大量的內存,我們需要設置下我們的 VM 選項。 Linux 設備的話在 Android Studio 的 bin/studio64.vmoptions 文件中添加-Xms748m -Xmx748m。
在正式開始導入前,我們可以打開 android.iml 文件根據自己需要調整要加載的源碼,將不需要的以來modules刪除掉。
6.依賴配置
添加external和frameworks依賴
7.配置對應SDK
8.打開ADB調試開關
9.斷點調試
補充:如何查看源碼版本
1,如果是已經編譯過的,則會在源碼下生成build.prop文件,我們可以通過命令查找文件
find -name build.prop
2,如果未編譯過,在源碼目錄下的build/core/version_defaults.mk文件中也有版本信息
3.或者查看.repo/manifest.xml
<remote name="aosp" fetch=".." review="https://android-review.googlesource.com/"/>
<default revision="refs/tags/android-cts-6.0_r9" remote="aosp" sync-j="4"/>