Windows 10에서 Windows Subsystem Linux(WSL) 를 20년 5월 버전에 배포하였다. 윈도우 10에서 리눅스 커널이 그대로 올라가고, 리눅스의 실행 파일(elf)가 실행할 수 있다. USB와 같은 직력화 디바이스 컨트롤은 아직은 불가능하지만, GPU 접근이 가능하고 X-sever를 사용하면 GUI Application 도 실행 가능하다. 이에 WSL 환경에서 Android 소스를 빌드가 가능한지 확인하였다.
결과적으로 WSL에서 Android 소스 다운로드는 가능하나, 빌드는 "case sensitive file system"을 지원하지 않아 불가능하다.
1. WSL 가상 메모리 늘리기
WSL에서는 linux command 로 가상 메모리 설정은 불가능하고, wslconfig를 사용해서 설정해야 한다.
방법: WSL 2.0 Global configuration (.wslconfig) 을 통한 성능 향상
2. build tool 설치
WSL에서 apt를 사용해서 Android build tool 설치가 가능하다.
$ 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 libgl1-mesa-dev libxml2-utils xsltproc unzip libncurses5
3. git 설정
$ git config --global user.name kibua20
$ git config --global user.email "kibua20@gmail.com"
$ git config --global core.editor vim
$ git config --list
4. Android 소스 다운로드 하기
Android 소스 다운로드 가능하다. repo 다운로드 중이 일부 TLS 에러 발생은 하고 원인을 확인할 필요는 있다.
방법:
Android 소스 최적화 (100GB에서 65GB로 줄이기)
repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r36 -c --depth=1 --no-tags ;
repo sync -j4 -q -c --no-tags;
repo start android-10.0.0_r36 --all
5. 빌드 확인 - 에러 발생
Android 빌드는 시작하면 아래와 같이 " Case-insensitive filesystems not supported" 에러가 발생한다. WSL에서 EXT4 포맷을 인식하지 못해서 NTFS로 포맷한 상태이다. WSL에서 File system은 기본적으로 NTFS 를 기반으로 개발된 것으로 추정된다.
향후 해결 방안을 찾으면 추후 업데이트 예정이다.
. build/envsetup.sh
lunch aosp_taimen-userdebug
export _JAVA_OPTIONS=-Xmx4g
m
10:07:39 ************************************************************
10:07:39 You are building on a case-insensitive filesystem.
10:07:39 Please move your source tree to a case-sensitive filesystem.
10:07:39 ************************************************************
10:07:39 Case-insensitive filesystems not supported
7/6) Twitter '댬'님께서 공유해준 정보 - WSL에서도 대소문자 구분 가능 (추후 확인 예정)
https://devblogs.microsoft.com/commandline/per-directory-case-sensitivity-and-wsl/
https://devblogs.microsoft.com/commandline/improved-per-directory-case-sensitivity-support-in-wsl/
관련 글
[모바일/Android] - repo 실행 시 DeprecationWarning: imp module 대처법
[모바일/Android] - Android 소스 최적화 (100GB에서 65GB로 줄이기)
[모바일/Android] - Android 11 (R-OS) Emulator에 설치하기
[모바일/Android] - Android 11 기능 소개
[모바일/Android] - Ubuntu에서 Android 10 빌드하기
[모바일/Android] - Android Studio 4.0 사용하기
[모바일/Android] - Android 10 (Q-OS) 소스 다운로드
댓글