Androidソースコンパイルノート

3895 ワード

一、ソースコードのダウンロード
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個)、ソースコードルートディレクトリにアップロードし、実行ドライバのshファイルを解凍する
ドライバファイルを解凍、2つの実行可能ファイルを得る.実行可能ファイルをソースコードルートディレクトリに移動し、実行可能ファイルを実行する
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

四、システム差分アップグレード
       ,      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  

五、システム署名
システム署名の生成、システム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  

生成されたシステム署名の使用


六、システム応用常駐バックグラウンド
システムアプリケーション常駐バックグラウンド
application    android:persistent,        
          

システムアプリケーション、システム署名の配置
七、内蔵app
注意すべきは、appが使用するsoが32ビット、システムが64ビットの場合、Android.mkでLOCAL_を設定するMULTILIB:=32システムビット数の表示:adb shell getprop ro.product.cpu.abi