使用WSL搭建AOSP环境

使用WSL搭建环境需要特别注意的几点

如下几点需要在解压完“aosp-latest.tar”之后和repo sync之前操作。

  • 设置aosp源码所在路径为大小写敏感,win10系统支持新建的子目录继承父目录的大小写敏感特性,所以只需要设置aosp根目录大小写敏感,参考命令如下(在cmd窗口执行,路径替换为自己实际的aosp路径):
    fsutil.exe file SetCaseSensitiveInfo D:\07.workspace\aosp enable
  • 设置D:\07.workspace\aosp的所有用户为“完全控制”权限


    image.png

主要参考以下博文

Ubentu编译Android源码(AOSP)

win10搭建阅读Android源码环境

编译命令和过程如下

  • 切换到aosp主目录执行初始化环境命令:
andy@andy-PC:/mnt/d/07.workspace$ cd aosp/
andy@andy-PC:/mnt/d/07.workspace/aosp$ source build/envsetup.sh
  • 执行lunch并选择编译的目标版本,这里选择25,即“25. aosp_x86_64-eng”
    说明:如果你的电脑是64位的话,选择25,因为x86版本的虚拟机运行比较快。不要编译arm 版本的了,运行起来太慢,而且运行不起来。
andy@andy-PC:/mnt/d/07.workspace/aosp$ lunch
You're building on Linux

Lunch menu... pick a combo:
     1. aosp_arm-eng
     2. aosp_arm64-eng
     3. aosp_blueline-userdebug
     4. aosp_bonito-userdebug
     5. aosp_car_arm-userdebug
     6. aosp_car_arm64-userdebug
     7. aosp_car_x86-userdebug
     8. aosp_car_x86_64-userdebug
     9. aosp_cf_arm64_auto-userdebug
     10. aosp_cf_arm64_phone-userdebug
     11. aosp_cf_x86_64_phone-userdebug
     12. aosp_cf_x86_auto-userdebug
     13. aosp_cf_x86_phone-userdebug
     14. aosp_cf_x86_tv-userdebug
     15. aosp_coral-userdebug
     16. aosp_coral_car-userdebug
     17. aosp_crosshatch-userdebug
     18. aosp_crosshatch_car-userdebug
     19. aosp_flame-userdebug
     20. aosp_sargo-userdebug
     21. aosp_taimen-userdebug
     22. aosp_walleye-userdebug
     23. aosp_walleye_test-userdebug
     24. aosp_x86-eng
     25. aosp_x86_64-eng
     26. arm_krait-eng
     27. arm_v7_v8-eng
     28. armv8-eng
     29. armv8_kryo385-eng
     30. beagle_x15-userdebug
     31. beagle_x15_auto-userdebug
     32. car_x86_64-userdebug
     33. db845c-userdebug
     34. fuchsia_arm64-eng
     35. fuchsia_x86_64-eng
     36. hikey-userdebug
     37. hikey64_only-userdebug
     38. hikey960-userdebug
     39. hikey960_tv-userdebug
     40. hikey_tv-userdebug
     41. pixel3_mainline-userdebug
     42. poplar-eng
     43. poplar-user
     44. poplar-userdebug
     45. qemu_trusty_arm64-userdebug
     46. silvermont-eng
     47. uml-userdebug
     48. yukawa-userdebug
     49. yukawa_sei510-userdebug

Which would you like? [aosp_arm-eng] 25
============================================
PLATFORM_VERSION_CODENAME=S
PLATFORM_VERSION=S
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=generic
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.19.104-microsoft-standard-x86_64-Ubuntu-20.04-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=AOSP.MASTER
OUT_DIR=out
PRODUCT_SOONG_NAMESPACES=device/generic/goldfish device/generic/goldfish-opengl device/generic/goldfish device/generic/goldfish-opengl
============================================
  • 执行编译命令make -j8
andy@andy-PC:/mnt/d/07.workspace/aosp$ make -j8
23:30:00 ************************************************************
23:30:00 You are building on a machine with 12.4GB of RAM
23:30:00
23:30:00 The minimum required amount of free memory is around 16GB,
23:30:00 and even with that, some configurations may not work.
23:30:00
23:30:00 If you run into segfaults or other errors, try reducing your
23:30:00 -j value.
23:30:00 ************************************************************
============================================
PLATFORM_VERSION_CODENAME=S
PLATFORM_VERSION=S
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=generic
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.19.104-microsoft-standard-x86_64-Ubuntu-20.04-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=AOSP.MASTER
OUT_DIR=out
PRODUCT_SOONG_NAMESPACES=device/generic/goldfish device/generic/goldfish-opengl device/generic/goldfish device/generic/goldfish-opengl
============================================
  • 编译成功的日志打印和截图如下
    说明:编译成功用时 (06:08:37 (hh:mm:ss)),这是在多次编译情况下成功的耗时,若首次的话(经过多次长时间的编译才成功,中间遇到了很多坑),时间应该会更长。。。
frameworks/base/services/usb/java/com/android/server/usb/UsbPortManager.java:50: info: Unresolved import: `android.hardware.usb.V1_2.PortStatus` [UnresolvedImport]
frameworks/base/services/usb/java/com/android/server/usb/UsbPortManager.java:51: info: Unresolved import: `android.hidl.manager.V1_0.IServiceManager` [UnresolvedImport]
frameworks/base/services/usb/java/com/android/server/usb/UsbPortManager.java:52: info: Unresolved import: `android.hidl.manager.V1_0.IServiceNotification` [UnresolvedImport]metalava detected access to files that are not explicitly specified. See /mnt/d/07.workspace/aosp/out/soong/.intermediates/frameworks/base/services/services-stubs.sources/android_common/services-stubs.sources-violations.txt for details.
[ 99% 2301/2319] Target Java: out/target/common/obj/APPS/Dialer_intermediates/classes-full-debug.jar
Note: Generating a Provider for com.android.dialer.glidephotomanager.impl.GlidePhotoManagerImpl. Prefer to run the dagger processor over that class instead.
Note: [1] Wrote GeneratedAppGlideModule with: []
[ 99% 2304/2319] R8: out/target/common/obj/APPS/Dialer_intermediates/dex/classes.dex
Stripped invalid locals information from 1 method.
In ./out/target/common/obj/APPS/Dialer_intermediates/classes.jar:android/support/v7/widget/Toolbar.class:
  Methods with invalid locals information:
  void android.support.v7.widget.Toolbar.onLayout(boolean, int, int, int, int)
  Type information in locals-table is inconsistent. Cannot constrain type: INT for value: v419 by constraint OBJECT.
Some warnings are typically a sign of using an outdated Java toolchain. To fix, recompile the source with an updated toolchain.
[100% 2319/2319] Target vbmeta image: out/target/product/generic/vbmeta.img

#### build completed successfully (06:08:37 (hh:mm:ss)) ####

andy@andy-PC:/mnt/d/07.workspace/aosp$
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335