Android 소스 컴파일 노트
3907 단어 필기
1、 Repo
bin/ , :
mkdir ~/bin
PATH=~/bin:$PATH
curl:
https://blog.csdn.net/qq_31458537/article/details/87914443
Repo , :
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
git:
https://blog.csdn.net/qq_42690368/article/details/82319238
git config --global user.name "zhangjianliang"
git config --global user.email "[email protected]"
( ):ssh-keygen -t rsa -C "[email protected]"
/home/admin/.ssh/id_rsa
android :
repo init -u https://android.googlesource.com/platform/manifest -b android-7.1.2_r28
:
https://source.android.com/source/initializing
2 다운로드 드라이브(2개), 원본 루트 디렉터리에 업로드, 실행 드라이브의sh 파일 압축 풀기
드라이버의 압축을 풀고 실행 가능한 두 개의 파일을 얻습니다.실행 가능한 파일을 원본 루트 디렉터리로 이동하고 실행 가능한 파일을 실행합니다
3 번역 시작
( Setting):
source build/envsetup.sh
mmm packages/apps/Settings/
개별 모듈을 컴파일한 후 시스템을 플러시합니다.
adb disable-verity
source build/envsetup.sh
lunch 21
mmm packages/apps/Settings
adb root
adb remount
adb shell rm -rf /system/priv-app/Settings
adb shell am start com.android.settings/.Settings
adb push out/target/product/bullhead/system/priv-app/Settings /system/priv-app/
adb shell am start com.android.settings/.Settings
컴파일된 설치: 컴파일된 패키지를 로컬로 다운로드하고 다음 명령을 실행합니다
adb reboot bootloader
fastboot flash boot boot.img
fastboot flash recovery recovery.img
fastboot flash system system.img
fastboot flash userdata userdata.img
fastboot flash cache cache.img
fastboot flash vendor vendor.img
fastboot reboot
전편역
source build/envsetup.sh
lunch 21
export LC_ALL=C
m -j8
#
#nohup m -j8
단독 컴파일 모듈
Android Studio 디버깅을 가져올 수 있는 항목을 만들려면 다음과 같이 하십시오.
//
source build/envsetup.sh
// idegen
mmm development/tools/idegen/
// Android Studio
development/tools/idegen/idegen.sh
sh development/tools/idegen/idegen.sh
android.ipr
android.ipr
android studio
소스 코드를 다시 컴파일할 때 캐시를 지우려면 다음과 같이 하십시오.
1、 ,make clobber ,
2、 , sourcebuild/envsetup.sh,lunch,make.
새로 고친 모듈을 지웁니다.
fastboot erase system
fastboot erase userdata
fastboot erase cache
...
시스템 API를 추가하거나 @hide API를 수정한 후 수행해야 합니다.
make update-api, make
4. 시스템 차별 업그레이드
, ota
,
source build/envsetup.sh
lunch 21
make otapackage
:out/target/product/msm8974/obj/PACKAGING/target_files_intermediates/
./build/tools/releasetools/ota_from_target_files -i 。 5. 시스템 서명
시스템 서명 생성, 시스템ota 패키지 서명, 시스템 응용 서명
1.
build/target/product/security , readme, , key , pk8 x509 ,
, x509 , cn
2. , releaseKey.xxx testkey.xxx, /build/target/product/security
3.
source build/envsetup.sh
lunch aosp_bullhead-userdebug
4.
make otapackage
out/target/product/msm8974/obj/PACKAGING/target_files_intermediates/
5.
build/tools/releasetools/ota_from_target_files -i 。 생성된 시스템 서명 사용
6. 시스템 응용 상주 백그라운드
시스템 어플리케이션 상주 백그라운드
application android:persistent,
시스템 응용프로그램, 시스템 서명 배치
7. 내장 앱
주의해야 할 것은 만약에 앱이 사용하는 so가 32비트이고 시스템이 64비트라면 안드로이드에 있어야 한다는 것이다.mk에서 LOCAL 구성MULTILIB: = 32 시스템 자릿수 보기:adb shell getprop ro.product.cpu.abi
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
static 간단한 설명static 방법은 일반적으로 정적 방법이라고 부른다. 정적 방법은 어떠한 대상에 의존하지 않고 접근할 수 있기 때문에 정적 방법에 있어this는 없다. 왜냐하면 그 어떠한 대상에도 의존하지 않기 때문이다. 대상이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.