Android 소스 컴파일 노트

3907 단어 필기
1. 원본 다운로드
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

좋은 웹페이지 즐겨찾기