macOS에서 AOSP 빌드
부인 성명:
1단계: 파일 시스템 설정
APFS(Apple File System)라고 하는 macOS 10.13 이상의 기본 파일 시스템은 대소문자를 구분하지 않습니다. 하지만 AOSP를 빌드하려면 대소문자를 구분하는 파일 시스템이 필요합니다. 기본 파일 시스템에서 빌드를 시도하면 아래 메시지와 함께 빌드가 시작되지 않습니다.
20:48:42 You are building on a case-insensitive filesystem.
20:48:42 Please move your source tree to a case-sensitive filesystem.
20:48:42 ************************************************************
20:48:42 Case-insensitive filesystems not supported
따라서 코드 다운로드를 시작하기 전에 먼저 대소문자를 구분하는 파일 시스템을 생성해야 합니다.
Disk Utility
+
아이콘을 클릭합니다. 2단계: 소스 다운로드
그래서 안드로이드 팀은 repo 이라는 유틸리티를 만들었습니다. 이 유틸리티는 여러 저장소를 관리하는 데 도움이 됩니다. 이 유틸리티를 사용하여 Android 소스를 다운로드할 것입니다.
repo
를 사용하여 brew
를 설치합니다.❯ brew install repo
첫 번째 단계에서 생성한 볼륨 내에서 빌드하는 데 필요한 모든 리포지토리를 복제하려는 새 볼륨 내에 기본 디렉터리를 생성합니다. 바꾸다
<volume_name>
정확한 이름.❯ cd /Volumes/<volume_name>
❯ mkdir source
❯ cd source
이제 repo를 초기화합시다. 그러면 Repo 소스 코드용 Git 리포지토리와 Android 소스에 포함된 다양한 리포지토리의 위치를 지정하는 매니페스트 파일이 있는 디렉토리
.repo/
가 생성됩니다. 또한 아래 명령은 git config에서 아직 설정하지 않은 경우 이름과 이메일을 묻습니다.❯ repo init -u https://android.googlesource.com/platform/manifest
Downloading Repo source from https://gerrit.googlesource.com/git-repo
remote: Total 7372 (delta 3971), reused 7372 (delta 3971)
Downloading manifest from https://android.googlesource.com/platform/manifest
remote: Finding sources: 100% (98897/98897)
remote: Total 98897 (delta 31617), reused 98888 (delta 31617)
Your identity is: Your Name <email>
If you want to change this, please re-run 'repo init' with --config-name
repo has been initialised in /path/to/folder/
If this is not the directory in which you want to initialise repo, please run:
rm -r /path/to/folder/.repo
and try again.
이제 소스를 복제하십시오. 또한
-c
를 전달하는 것을 잊지 마십시오. repo 복제에만 마스터 분기를 알리고, 그렇지 않으면 모든 분기를 복제하려고 시도합니다. 선택적으로 -j
플래그를 전달하여 더 빠른 복제를 위해 스레드 수를 지정할 수 있습니다.❯ repo sync -c -j8
네트워크 대역폭과 시스템 처리 속도에 따라 위의 단계를 다운로드하고 체크아웃하는 데 시간이 걸립니다. 완료되면 아래 메시지가 표시됩니다.
repo sync has finished successfully.
/usr/local/Cellar/[email protected]/3.10.5/Frameworks/Python.framework/Versions/3.10/lib/python3.10/multiprocessing/resource_tracker.py:224: UserWarning: resource_tracker: There appear to be 17 leaked semaphore objects to clean up at shutdown
warnings.warn('resource_tracker: There appear to be %d '
위의 메시지를 받았다면 축하합니다 🥳 가장 많은 시간을 들여 조치를 취한 것입니다. 그러나 몇 가지 문제로 인해 실패하면 Troubleshooting steps을 시도하십시오. 아직도 해결되지 않았습니까? 그런 다음 아래에 댓글을 달면 해결하려고 노력할 것입니다.
3단계: 환경 설정 및 빌드 구성
빌드를 시작하기 전에 몇 가지 구성 단계가 필요합니다.
Android 소스는 빌드를 위한 몇 가지 도우미 명령을 제공하며 아래 명령을 사용하여 현재 세션의 경로에 추가할 수 있습니다.
❯ source build/envsetup.sh
hmm
명령을 사용하여 추가된 모든 도우미 명령을 나열할 수 있습니다.빌드 대상, 즉
lunch
명령을 사용하여 빌드하려는 제품 및 아키텍처를 선택할 수 있습니다. 인수 없이 점심을 실행하면 사용 가능한 구성 중 일부가 표시됩니다.❯ lunch
You're building on Darwin
Lunch menu .. Here are the common combinations:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_barbet-userdebug
4. aosp_bramble-userdebug
5. aosp_bramble_car-userdebug
6. aosp_car_arm-userdebug
7. aosp_car_arm64-userdebug
8. aosp_car_x86-userdebug
9. aosp_car_x86_64-userdebug
10. aosp_cf_arm64_auto-userdebug
11. aosp_cf_arm64_phone-userdebug
12. aosp_cf_x86_64_foldable-userdebug
13. aosp_cf_x86_64_pc-userdebug
14. aosp_cf_x86_64_phone-userdebug
15. aosp_cf_x86_64_tv-userdebug
16. aosp_cf_x86_auto-userdebug
17. aosp_cf_x86_phone-userdebug
18. aosp_cf_x86_tv-userdebug
19. aosp_coral-userdebug
20. aosp_coral_car-userdebug
21. aosp_flame-userdebug
22. aosp_flame_car-userdebug
23. aosp_oriole-userdebug
24. aosp_oriole_car-userdebug
25. aosp_raven-userdebug
26. aosp_raven_car-userdebug
27. aosp_redfin-userdebug
28. aosp_redfin_car-userdebug
29. aosp_redfin_vf-userdebug
30. aosp_slider-userdebug
31. aosp_sunfish-userdebug
32. aosp_sunfish_car-userdebug
33. aosp_trout_arm64-userdebug
34. aosp_trout_x86-userdebug
35. aosp_whitefin-userdebug
36. aosp_x86-eng
37. aosp_x86_64-eng
38. arm_krait-eng
39. arm_v7_v8-eng
40. armv8-eng
41. armv8_cortex_a55-eng
42. armv8_kryo385-eng
43. beagle_x15-userdebug
44. beagle_x15_auto-userdebug
45. car_ui_portrait-userdebug
46. car_x86_64-userdebug
47. db845c-userdebug
48. gsi_car_arm64-userdebug
49. gsi_car_x86_64-userdebug
50. hikey-userdebug
51. hikey64_only-userdebug
52. hikey960-userdebug
53. hikey960_tv-userdebug
54. hikey_tv-userdebug
55. poplar-eng
56. poplar-user
57. poplar-userdebug
58. qemu_trusty_arm64-userdebug
59. rb5-userdebug
60. sdk_car_arm-userdebug
61. sdk_car_arm64-userdebug
62. sdk_car_portrait_x86_64-userdebug
63. sdk_car_x86-userdebug
64. sdk_car_x86_64-userdebug
65. silvermont-eng
66. uml-userdebug
67. yukawa-userdebug
68. yukawa_sei510-userdebug
Which would you like? [aosp_arm-eng]
Pick from common choices above (e.g. 13) or specify your own (e.g. aosp_barbet-eng):
빌드하려는 구성을 선택하십시오.
3단계: 구축
간단히
m
명령을 실행하여 빌드할 수 있습니다.❯ m
그러면 우리가 지정한 대상에 대한 빌드가 시작됩니다.
-j
인수를 사용하여 빌드의 스레드 수를 지정할 수도 있습니다.끝까지 읽어주셔서 감사합니다. 전체 시리즈의 첫 번째 부분일 뿐이며, 다음 부분에서는 Soong 빌드 시스템, 다양한 아키텍처용 빌드, 크로스 컴파일 등에 대해 살펴보겠습니다. 계속 지켜봐!
또한 이 기사에 대한 피드백을 댓글로 알려주세요!
Reference
이 문제에 관하여(macOS에서 AOSP 빌드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sriteja777/building-aosp-on-macos-2473텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)