[AOSP] AOSP 8.1.0(r33) 編譯Automotive(Car)

0x00 Automotive

AOSP中提供了編譯不同產品的配置,如Phone,Automotive扇住,TV等。當有需要時霍骄,可以分別去編譯他們台囱。下面介紹編譯 編譯Automotive(Car)可能遇到的問題淡溯。

0x01 Lunch Error

AOSP編譯正常的流程為:

cd AOSP_ROOT_DIR
source build/envsetup.sh
lunch index or combo

當我們選擇編譯 Car(aosp_car_emu_x86_64-userdebug or lunch 12) 的時候读整,會報這樣的錯誤:

ttdevs@ttdevs-pc:~/AOSP$ lunch 12
build/core/product_config.mk:227: *** Can not locate config makefile for product "aosp_car_emu_x86".  Stop.
ttdevs@ttdevs-pc:~/AOSP$

Google了一下,這是一個排版錯誤咱娶,直接將_emu去掉即可米间,即 lunch aosp_car_x86_64-userdebug强品,其他平臺類似。

下面簡單分析下這個問題屈糊。

ttdevs@ttdevs-pc:~/AOSP$ source build/envsetup.sh 
including device/asus/fugu/vendorsetup.sh
including device/generic/car/vendorsetup.sh
including device/generic/mini-emulator-arm64/vendorsetup.sh
including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
including device/generic/mini-emulator-mips/vendorsetup.sh
including device/generic/mini-emulator-mips64/vendorsetup.sh
including device/generic/mini-emulator-x86/vendorsetup.sh
including device/generic/mini-emulator-x86_64/vendorsetup.sh
including device/generic/uml/vendorsetup.sh
including device/google/dragon/vendorsetup.sh
including device/google/marlin/vendorsetup.sh
including device/google/muskie/vendorsetup.sh
including device/google/taimen/vendorsetup.sh
including device/huawei/angler/vendorsetup.sh
including device/lge/bullhead/vendorsetup.sh
including device/linaro/hikey/vendorsetup.sh
including sdk/bash_completion/adb.bash
ttdevs@ttdevs-pc:~/AOSP$

根據上面日志的榛,我們看一下 device/generic/car/vendorsetup.sh 這個文件和其所在的目錄。

ttdevs@ttdevs-pc:~/AOSP/device/generic/car$ tree
.
|-- AndroidProducts.mk
|-- aosp_car_arm.mk
|-- aosp_car_arm64.mk
|-- aosp_car_x86.mk
|-- aosp_car_x86_64.mk
|-- common
|   |-- android.hardware.dummy.xml
|   |-- car.mk
|   |-- car_core_hardware.xml
|   |-- config.ini
|   |-- manifest.xml
|   `-- sepolicy
|       |-- file_contexts
|       |-- hal_vehicle_hwservice.te
|       |-- hwservice.te
|       |-- hwservice_contexts
|       `-- system_app.te
`-- vendorsetup.sh

2 directories, 16 files
ttdevs@ttdevs-pc:~/AOSP/device/generic/car$ 

vendorsetup.sh 中逻锐,我們看到添加了四個 combo夫晌,都是帶 emu 的。在 AndroidProducts.mk 中可以看到分別加載了對應的四個 make 文件昧诱,這里以 aosp_car_x86_64.mk 為例:

$(call inherit-product, device/generic/car/common/car.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_x86_64.mk)

PRODUCT_NAME := aosp_car_x86_64
PRODUCT_DEVICE := generic_x86_64
PRODUCT_BRAND := Android
PRODUCT_MODEL := Car on x86_64 emulator

PRODUCT_NAMEaosp_car_x86_64 并不是 aosp_car_emu_x86_64晓淀。當我們執(zhí)行 lunch aosp_car_emu_x86_64-userdebug 時,系統(tǒng)會去查找 aosp_car_emu_x86_64 這個 PRODUCT盏档,找不到就報錯了(別問我為什么是這個邏輯凶掰,我也說不清楚,RFSC)蜈亩。至此懦窘,我們知道為什么刪除 _emu 就可以了。為了驗證這個邏輯稚配,還可以選擇下面的兩個方案來解決這個問題:

  • /home/ttdevs/AOSP/device/generic/car/aosp_car_x86_64.mk

    PRODUCT_NAME 改為: PRODUCT_NAME := aosp_car_emu_x86_64

  • /home/ttdevs/AOSP/device/generic/car/vendorsetup.sh

    添加:add_lunch_combo aosp_car_x86_64-userdebug

大家可以嘗試一下畅涂,這兩種方法都可以。

0x02 Build Error

當上一個問題解決后药有,我們就可以開始編譯了毅戈。很不幸,很快又會遇到另個問題:

Target buildinfo from: build/target/board/generic_x86_64/system.prop
error: ro.build.fingerprint cannot exceed 91 bytes: Android/aosp_car_x86_64/generic_x86_64:8.1.0/OPM6.171019.030.B1/ttdevs07021613:userdebug/test-keys (98)
[  9% 7975/83700] Build hyb out/target/product/generic...b <- external/hyphenation-patterns/hu//hyph-hu.pat.txt
21515 unique nodes, 102669 total
ninja: build stopped: subcommand failed.
16:18:07 ninja failed with: exit status 1

簡單搜索之后愤惰,Stackoverflow 給了我們答案苇经,make 參數增加 BUILD_FINGERPRINT="custom_name",即:

make -j12 BUILD_FINGERPRINT="custom_name"

經過漫長的等待宦言,我們就可以運行Car模擬器了~~

ulimit -S -n 2048

0xFF Reference

  1. https://source.android.com/devices/automotive

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末扇单,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子奠旺,更是在濱河造成了極大的恐慌蜘澜,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件响疚,死亡現場離奇詭異鄙信,居然都是意外死亡,警方通過查閱死者的電腦和手機忿晕,發(fā)現死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門装诡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事鸦采”鑫。” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵渔伯,是天一觀的道長顶霞。 經常有香客問我,道長锣吼,這世上最難降的妖魔是什么选浑? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮玄叠,結果婚禮上鲜侥,老公的妹妹穿的比我還像新娘。我一直安慰自己诸典,他們只是感情好描函,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著狐粱,像睡著了一般舀寓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肌蜻,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天互墓,我揣著相機與錄音,去河邊找鬼蒋搜。 笑死篡撵,一個胖子當著我的面吹牛,可吹牛的內容都是我干的豆挽。 我是一名探鬼主播育谬,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼帮哈!你這毒婦竟也來了膛檀?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤娘侍,失蹤者是張志新(化名)和其女友劉穎咖刃,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體憾筏,經...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡嚎杨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了氧腰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枫浙。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡翠胰,死狀恐怖,靈堂內的尸體忽然破棺而出自脯,到底是詐尸還是另有隱情,我是刑警寧澤斤富,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布膏潮,位于F島的核電站,受9級特大地震影響满力,放射性物質發(fā)生泄漏焕参。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一油额、第九天 我趴在偏房一處隱蔽的房頂上張望叠纷。 院中可真熱鬧,春花似錦潦嘶、人聲如沸涩嚣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽航厚。三九已至,卻和暖如春锰蓬,著一層夾襖步出監(jiān)牢的瞬間幔睬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工芹扭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留麻顶,地道東北人。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓舱卡,卻偏偏與公主長得像辅肾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子轮锥,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內容