Androidソースコンパイルノート
3895 ワード
一、ソースコードのダウンロード
二ダウンロードドライバ(2個)、ソースコードルートディレクトリにアップロードし、実行ドライバのshファイルを解凍する
ドライバファイルを解凍、2つの実行可能ファイルを得る.実行可能ファイルをソースコードルートディレクトリに移動し、実行可能ファイルを実行する
3コンパイル開始
個別モジュールのコンパイル後、システムにブラシをかける:
コンパイル済みのインストール:コンパイル済みのパッケージをローカルにダウンロードし、次のコマンドを実行します.
フルコンパイル
モジュールの個別コンパイル
Android Studioデバッグをインポートできるプロジェクトを生成します.
ソースコードを再コンパイルすると、キャッシュがクリアされます.
古いモジュールを消去
システムAPIの追加または@hideのAPIの変更後、実行する必要があります
四、システム差分アップグレード
五、システム署名
システム署名の生成、システムotaパッケージへの署名、システムへの署名の適用
生成されたシステム署名の使用
六、システム応用常駐バックグラウンド
システムアプリケーション常駐バックグラウンド
システムアプリケーション、システム署名の配置
七、内蔵app
注意すべきは、appが使用するsoが32ビット、システムが64ビットの場合、Android.mkでLOCAL_を設定するMULTILIB:=32システムビット数の表示:adb shell getprop ro.product.cpu.abi
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