ubuntu 16.04TLS 컴파일android 5.1.1 소스 코드
1.Openjdk7 설치
ubuntu 15.04 및 그 다음 버전의 온라인 설치 라이브러리에서는 Openjdk8과 Openjkd9의 설치만 지원하기 때문에 Openjdk7을 설치하려면 ppa를 설정해야 합니다
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-7-jdk
다른 버전의android시스템을 컴파일하려면 jdk버전이 필요할 수 있습니다. 다음 명령을 사용하여 jdk버전을 전환합니다.
sudo update-alternatives --config java
sudo update-alternatives --config javac
명령을 입력하면 jdk 버전을 선택하라는 메시지가 표시됩니다. 알림에 따라 필요한 버전을 선택하면 됩니다.
의존성 추가
sudo apt-get install git gnupg flex bison gperf build-essential
sudo apt-get install zip curl libc6-dev libncurses5-dev x11proto-core-dev
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386
sudo apt-get install g++-multilib tofrodos lib32ncurses5-dev lib32ncursesw5-dev
sudo apt-get install python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install lib32z1 dos2unix gcc g++
git
sudo apt-get install git
git config --global user.email "[email protected]"
git config --global user.name "test"
, , CyanogenMod 。
repo
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
## url , :
## curl https://storage-googleapis.proxy.ustclug.org/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
mkdir WORKSPACE
cd WORKSPAC
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
## gerrit.googlesource.com, ~/bin/repo, REPO_URL :
## REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo
manifest master , -b , android_5.1.1_r1 , Android
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android_5.1.1_r1
repo sync
4 5
, vendor , , ( ) ,
https://developers.google.com/android/drivers#hammerheadmmb29k실제 세 개의 셸 스크립트입니다. 셸 스크립트를 원본 루트 디렉터리에 놓고 셸 스크립트를 실행하면 루트 디렉터리에 있습니다.
vendor 디렉터리를 생성하면 드라이버가 이 디렉터리에 있습니다. 예를 들어 스크립트 파일의 이름은broadcom입니다.sh, 명령을 두드려라./broadcom.sh 실행 스크립트
WORKSPACE , : source build/envsetup.sh . build/envsetup.sh lunch ,
Lunch menu... pick a combo: 1. aosp_arm-eng 2. aosp_arm64-eng 3. aosp_mips-eng 4. aosp_mips64-eng 5. aosp_x86-eng 6. aosp_x86_64-eng 7. aosp_deb-userdebug 8. aosp_flo-userdebug 9. full_fugu-userdebug 10. aosp_fugu-userdebug 11. mini_emulator_arm64-userdebug 12. m_e_arm-userdebug 13. mini_emulator_mips-userdebug 14. mini_emulator_x86_64-userdebug 15. mini_emulator_x86-userdebug 16. aosp_flounder-userdebug 17. aosp_angler-userdebug 18. aosp_bullhead-userdebug 19. aosp_hammerhead-userdebug 20. aosp_hammerhead_fp-userdebug 21. aosp_shamu-userdebug
Which would you like? [aosp_arm-eng] 19
make -j8
make -j8, 8 , Google = CPU x 2 + 2, 4 , 10 , make –j10。】
cpu , :
cat /proc/cpuinfo
, :
Creating filesystem with parameters:
Size: 1073741824
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode size: 256
Journal blocks: 4096
Label:
Blocks: 262144
Block groups: 8
Reserved block group size: 63
Created filesystem with 1411/65536 inodes and 81288/262144 blocks
Install system fs image: out/target/product/hammerhead/system.img
out/target/product/hammerhead/system.img+out/target/product/hammerhead/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p maxsize=1096212480 blocksize=135168 total=317825554 reserve=11083776
#### make completed successfully (01:18:47 (hh:mm:ss)) ####
컴파일에 성공한 후에 우리는 원본을 안드로이드 스튜디오에서 볼 수 있는 프로젝트로 만들어야 한다. (단지 우리가 원본을 배우는 데 편리하도록 하기 위해서)
ide 도구 파일 생성
mmm development/tools/idegen/
mmm 명령은 지정한 디렉터리를 컴파일하는 데 사용됩니다
Android Studio 구성 파일을 생성합니다. 주로 android를 생성합니다.iws, android.ipr, android.iml, 이 세 개의 파일은 안드로이드 스튜디오 프로젝트의 핵심 파일로 프로젝트의 모듈 구성, 의존 관계, 디렉터리 구조를 열거하는 것이다.
sh ./development/tools/idegen/idegen.sh
안드로이드 스튜디오, File->Open->원본 루트 디렉터리android를 엽니다.ipr, Android는 자동으로 프로젝트의 모든 코드를 가져옵니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.