RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Android13的AOSP源碼下載及編譯指南

哆啦安全 ? 來源:虎哥Lovedroid ? 2024-01-17 09:49 ? 次閱讀

引言

AOSP(Android Open Source Project)是Android操作系統(tǒng)的開源項目,通過下載和編譯AOSP源碼,您可以獲得原始的Android系統(tǒng),并進行定制和開發(fā)。本教程將向您介紹如何下載AOSP源碼并進行編譯的步驟。

如何只是瀏覽查看AOSP源碼,則沒必要下載源碼,可以使用google提供的Code Search工具進行瀏覽查閱,這個工具用起來堪比IDE,并且非常流暢,但是訪問這個站點需要翻墻操作。

https://cs.android.com/

下載AOSP源碼之前,你需要具備一定的Linux基礎(chǔ)知識及git、repo等工具的使用經(jīng)驗。

準備工作

1.確保您的計算機符合以下要求:

?操作系統(tǒng):Linux(推薦使用Ubuntu)、macOS或Windows(需要使用WSL),官方文檔使用的Ubuntu LTS 版本中進行開發(fā)和測試,所以最好是在Ubuntu TLS版本環(huán)境下進行開發(fā)

?內(nèi)存:建議至少16GB RAM

?存儲空間:建議至少200GB可用空間,只下載源碼可能200G,如果需要編譯源碼則建議至少500G空間

2.安裝所需軟件:

?JDK(Java Development Kit):確保安裝JDK 8或更高版本。

?Git:用于從AOSP倉庫下載源代碼。

?Repo:用于管理多個Git倉庫的工具。

下載AOSP源碼

AOSP的代碼托管在Google的Git服務(wù)器上,但由于一些普遍已知的原因,國內(nèi)用戶無法直接訪問。為了方便快速地下載代碼,我們可以使用清華大學(xué)提供的鏡像源進行訪問。

使用清華鏡像源的方法很簡單,只需要訪問

https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

網(wǎng)站即可獲取相關(guān)說明和使用方法。

1.創(chuàng)建一個工作目錄,用于存儲AOSP源代碼。打開終端或命令提示符窗口,并執(zhí)行以下命令:

mkdirAOSP
cdAOSP

1.初始化Repo工具。執(zhí)行以下命令:

repoinit-uhttps://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest

這里會提示無法連接到 http://gerrit.googlesource.com,需要我們修改一下bash的環(huán)境變量,然后重新初始化倉庫。

$echo`exportREPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'`>>~/.bashrc
$source~/.bashrc
$repoinit-uhttps://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest

出現(xiàn)如下提示,說明倉庫初始化成功。

6a22d182-b4c0-11ee-8b88-92fbcf53809c.png

1.同步源碼。執(zhí)行以下命令:

reposync

1.等待源碼同步完成。這可能需要一段時間,取決于您的網(wǎng)絡(luò)連接和計算機性能。

配置編譯環(huán)境

1.進入AOSP源碼目錄。執(zhí)行以下命令:

cd

1.配置編譯環(huán)境。執(zhí)行以下命令:

sourcebuild/envsetup.sh

1.選擇目標設(shè)備。執(zhí)行以下命令:

lunch

1.在菜單中選擇目標設(shè)備的編號,并按Enter鍵確認。

開始編譯

1.執(zhí)行以下命令開始編譯整個AOSP源碼:

make-j

?是您計算機處理器核心數(shù)的數(shù)字。例如,如果您的計算機有4個核心,則可以使用make -j4。

1.等待編譯完成。這可能需要幾個小時,取決于您的計算機性能。

步驟五:獲取編譯后的系統(tǒng)鏡像

1.編譯完成后,在AOSP源碼目錄中執(zhí)行以下命令以獲取系統(tǒng)鏡像:

cd
out/target/product//

1.在該目錄下,您將找到生成的系統(tǒng)鏡像文件。

AOSP源碼查看

Code Search

前面說了,如果不涉及開發(fā)調(diào)試,只限閱讀源碼,那么直接訪問下面網(wǎng)址就夠了。這是Google為Android開發(fā)的Code Search在線工具,體驗堪比IDE。

https://cs.android.com/

Android Studio導(dǎo)入

如果需要在本地開發(fā)調(diào)試,那么使用AS導(dǎo)入源碼,執(zhí)行下面命令會在AOSP源碼根目錄下生成android.ipr、android.iml及android.iws三個文件,使用Android Studio導(dǎo)入android.ipr文件即可導(dǎo)入AOSP源碼。

$cd~/aosp
$sourcebuild/envsetup.sh
$mmmdevelopment/tools/idegen/
$development/tools/idegen/idegen.sh

另外,導(dǎo)入AOSP源碼體積龐大,你需要修改AS的jvm參數(shù)

6a366472-b4c0-11ee-8b88-92fbcf53809c.png

另外Android Studio建議使用JetBrains的ToolBox進行管理,避免因為修改配置導(dǎo)致AS無法升級的問題。

aidegen工具

Google在Android11之后提供了aidegen工具,可以針對AOSP源碼的特點,針對某個模塊生成ide配置,這樣導(dǎo)入后可自動完成依賴配置,符號依賴可以隨意跳轉(zhuǎn)。

6a818434-b4c0-11ee-8b88-92fbcf53809c.png

廠商AOSP

對于拿到了廠商AOSP源碼來說,編譯調(diào)試更容易了,一般廠商都提供了集成好的腳本,直接執(zhí)行腳本就可以執(zhí)行編譯打包能力,例如Rockchip、高通、MTK等都有集成好的腳本進行編譯打包。例如筆者在基于Rockchip平臺開發(fā)時,有build.sh腳本可調(diào)用:

#!/bin/bash
usage()
{
echo"USAGE:[-U][-CK][-A][-p][-o][-u][-vVERSION_NAME]"
echo"NoARGSmeansusedefaultbuildoption"
echo"WHERE:-U=builduboot"
echo"-C=buildkernelwithClang"
echo"-K=buildkernel"
echo"-A=buildandroid"
echo"-p=willbuildpackaginginIMAGE"
echo"-o=buildOTApackage"
echo"-u=buildupdate.img"
echo"-v=buildandroidwith'user'or'userdebug'"
echo"-d=huildkerneldtsname"
echo"-V=buildversion"
echo"-J=buildjobs"
echo"-B=buildABImage"
exit1
}

例如,可執(zhí)行下面命令編譯android、kernel、boot及打出update.img包

./build.sh-UKAu

通過本教程,您學(xué)會了如何下載AOSP源碼并進行編譯?,F(xiàn)在,您可以根據(jù)需要進行自定義和開發(fā),定制您自己的Android系統(tǒng)。請注意,AOSP編譯過程可能需要一些時間和計算機資源,建議在充足的時間和性能條件下進行操作。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3935

    瀏覽量

    127337
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1368

    瀏覽量

    114640
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209322
  • AOSP
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    6195

原文標題:Android Framework | AOSP源碼下載及編譯指南(基于Android13)

文章出處:【微信號:哆啦安全,微信公眾號:哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    迅為RK3588開發(fā)板Android13和12版本系統(tǒng)還有Debian11、Buildroot、Ubuntu20與22版本

    我們已經(jīng)在RK3588上開發(fā)了穩(wěn)定又好用的Android13和12版本系統(tǒng)Debian11、Buildroot、Ubuntu20與22版本、銀河麒麟、開放麒、統(tǒng)信系統(tǒng)、openEuler24.03系統(tǒng),內(nèi)核Linux5.10版本。
    發(fā)表于 07-26 10:55

    迅為RK3588開發(fā)板Android13系統(tǒng)更有全面的硬件資料助力產(chǎn)品研發(fā)

    我們已經(jīng)在RK3588上開發(fā)了穩(wěn)定又好用的Android13和12版本系統(tǒng)Debian11、Buildroot、Ubuntu20與22版本、銀河麒麟、開放麒、統(tǒng)信系統(tǒng)、openEuler24.03系統(tǒng),內(nèi)核Linux5.10版本。
    發(fā)表于 11-07 10:41

    Google AOSP 正式宣布支持HiKey 極大壓縮Android SDK開發(fā)軟件周期

    Android內(nèi)核源碼及板級系統(tǒng)支持,使得開發(fā)者們能夠輕松創(chuàng)建和調(diào)試新的或現(xiàn)有的外圍設(shè)備驅(qū)動程序,甚至進行內(nèi)核開發(fā)等其他更為困難的開發(fā)工作,由此OEM廠商的開發(fā)困難將大大降低。LeMaker也將全力支持國內(nèi)外用戶在HiKey上面進行AO
    發(fā)表于 03-08 11:38

    imx6 android下載編譯。谷歌安卓源碼被墻了怎么辦?

    按照imx6官網(wǎng)教程ubuntu上下載編譯安卓6.0系統(tǒng)。下載的時候出現(xiàn)問題,谷歌被墻了,~/bin/repo init -u https://android
    發(fā)表于 03-14 12:54

    Android for BBB準備repo 下載源碼

    repo init -u git://github.com/hendersa/bbbandroid-manifest.git -m bbbandroid-aosp-4.4.4_r1-3.8.xml然后使用repo sync 命令開始下載
    發(fā)表于 08-04 11:32

    iTOP-4412開發(fā)板android4.0代碼下載編譯

    Android 代碼下載完成后就可以進行編譯了,Android 源碼編譯需要 kernel 支持
    發(fā)表于 04-14 10:45

    如何對RK3568環(huán)境上的AOSP源碼進行調(diào)試呢

    如何對RK3568環(huán)境上的AOSP源碼進行編譯呢?如何對RK3568環(huán)境上的AOSP源碼進行調(diào)試呢?
    發(fā)表于 03-02 06:25

    【重磅來襲】迅為RK3568 Android11系統(tǒng)移植視頻教程

    ",在線觀看更多視頻1_總領(lǐng)-嵌入式Android要學(xué)哪內(nèi)容...2_Android源碼的獲取途徑3_下載谷歌AOSP
    發(fā)表于 07-08 14:43

    IMX8M android13移植編譯gnutls_handshake()失?。篢LS連接未正確終止如何解決?

    我在使用IMX8M-nano移植編譯android13,但是在拉取源碼庫的時候總是報錯aosp_platform_bootable_recovery:致命錯誤:無法訪問 \'https
    發(fā)表于 04-07 11:49

    i.MX8M nano evk添加NFC PN7160移植Android13編譯報錯怎么解決?

    我正在使用 i.MX8M nano evk 和 PN7160 進行 NFC 移植開發(fā)i.MX8M nano evk 是否有類似的附件 PN7160 功能的鏡頭運行Android13? 我自己按照
    發(fā)表于 04-25 08:21

    VisionFive 2成功集成Android開源項目(AOSP)!

    非常高興地向各位宣布,賽昉VisionFive 2上已成功集成了Android開源項目(AOSP),為用戶帶來了更多的軟件解決方案以及與Android軟件生態(tài)系統(tǒng)的無縫集成。這一里程碑源于與開源社區(qū)
    發(fā)表于 10-16 13:11

    RP4412 Android4.0 環(huán)境搭建和源碼編譯說明_v1

    RP4412 Android4.0 環(huán)境搭建和源碼編譯說明。
    發(fā)表于 05-04 16:04 ?0次下載

    Tengine從入門到放棄 第1篇-Tengine Android版本編譯

    Tengine Android版本編譯環(huán)境System: Ubuntu18.04CMAKE: 3.15.3下載Android NDK {代碼...} 克隆Tengine
    發(fā)表于 01-26 18:28 ?0次下載
    Tengine從入門到放棄 第1篇-Tengine <b class='flag-5'>Android</b>版本<b class='flag-5'>編譯</b>

    AOSP Android11系統(tǒng)源碼和內(nèi)核源碼簡析

    AOSP源碼中并不包括內(nèi)核源碼,需要單獨下載,內(nèi)核源碼有很多版本,比如common是通用的Linux內(nèi)核,msm是用于使用高通MSM芯片的
    的頭像 發(fā)表于 01-29 09:25 ?5380次閱讀

    迅為RK3588S邊緣計算開發(fā)板Android13系統(tǒng)功能

    迅為RK3588S邊緣計算開發(fā)板Android13系統(tǒng)功能
    的頭像 發(fā)表于 04-10 15:43 ?885次閱讀
    迅為RK3588S邊緣計算開發(fā)板<b class='flag-5'>Android13</b>系統(tǒng)功能
    RM新时代网站-首页