Ubuntu20.04 Android 10のソースコードをコンパイルし、ソースコードをpixel3のガイドに書き込んでピットを回避します
ラボ環境
- Ubuntu20.04
- pixel3
Androidソースツリーをダウンロードする
Androidのソースコードをダウンロードするには、最新バージョンをダウンロードするか、指定したブランチをダウンロードするかを選択できます。科学的なインターネットを使用できる場合は、Googleのソースツリーからダウンロードすることをお勧めします。そうでない場合は、清華ミラーを使用することをお勧めします:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/、ミラーチュートリアルへのリンクが詳細に示されているので、ここでは1つずつ繰り返しません。
- リポジトリツールをダウンロードします。
// 下载repo工具
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
- Repoをインストールした後、コードライブラリにアクセスするために独自のクライアントを設定します。ここでは、自分でGoogleアカウントを登録する必要があります。
(1)创建一个文件夹用来存放源码
mkdir Pixel3
cd Pixel3
(2)使用google帐号和真实姓名去配置Git
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
(3)运行repo init 获取最新版本代码或者指定分支
repo init -u https://android.googlesource.com/platform/manifest // 获取最新源码
repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r1// 指定分支
- Androidソースツリーをダウンロードする
repo sync
pixel3に電話ドライバーバージョンをインストールします
-
では公式サイト携帯電話の機種や見つけるためにAndroidのソースコードのビルド番号に対応していることをドライバのバージョンを
、それのビルド番号QP1A.190711.019はので、私はソースコードをダウンロードした場所は、アンドロイド・10.0.0_r1で
、その後に公式サイトを駆動するために対応するドライバー情報を見つけてダウンロードしてください
-
ダウンロードしたばかりのソースコードのルートディレクトリに解凍します
-
コマンドラインに次のコードを入力し、Enterキーを押して契約書を読みますが、契約書が長すぎるため、ctrl + cを押して中断できます。ここでは、入力後にIACCEPTと入力するように求められます。画像を抽出できます
./extract-google_devices-blueline.sh
./extract-qcom-blueline.sh
- 抽出が成功すると、ルートディレクトリにベンダーディレクトリが生成されます
Androidのソースコードをコンパイルする
ソースコードのコンパイルには少なくとも16GBのメモリが必要であるため、スワップパーティションを増やす必要があることに注意してください。詳細な手順については、私の最初のブログ投稿を参照してください。
source build/envsetup.sh
lunch aosp_blueline-userdebug
make -j12
AndroidStudioはAndroidシステムのソースコードをインポートします
- コンパイルが成功したら、次のコマンドを実行してソースコードidegenモジュールをコンパイルし、AS構成ビルド(* ipr)を生成します。
mmm development/tools/idegen/
development/tools/idegen/idegen.sh
完了すると、ルートディレクトリに次の3つの新しいファイルが表示
されます
。android.iml(プロジェクトに含まれるモジュール、依存関係、およびSDKバージョンの記録に使用)android.ipr(プロジェクトの特定の構成、コード、および依存ライブラリ情報) android.iws(個人構成情報)
- android.imlandroid.ipr権限を777に変更します
sudo chmod 777 android.iml
sudo chmod 777 android.ipr
- Android Studioを開き、既存のプロジェクトをインポートし、ルートディレクトリで.iprファイルを選択します
AndroidStudioへのソースコードのインポートが遅すぎる
sudo vim /etc/sysctl.conf
ファイルを入力したら、iを押して編集モードに入ります
ファイルの最後に追加
fs.inotify.max_user_watches = 524288
このパッセージを入力した後、Escを押して通常モードに入り、次にを押します。次にwqを入力します(書き込みと保存を意味します)
効果的なドキュメント
sudo sysctl -p –system // 生效文件
pixel3で新しくコンパイルされた画像ファイルにブラシをかけます
- pixel3をコンピューターに接続し、ブートローダーモードに入ります
adb reboot bootloader
- 電話のロックを解除する
fastboot flashing unlock
- fastbootdモードに入ると、リファレンスドキュメントは
// (1) 方法一:在bootloader模式下输入
fastboot reboot fastboot
// (2)方法二:返回Android系统,输入以下命令
adb reboot fastboot
- コマンドラインに次のコマンドを入力します
source ./build/envsetup.sh
- コマンドラインに次のコマンドを入力します
lunch aosp_blueline-userdebug
- 生成された製品パスを入力し、コマンドラインに次のコマンドを入力します
cd $ANDROID_PRODUCT_OUT
- コンパイルされたイメージファイルを書き込み、コマンドラインで次のコマンドを入力します
fastboot flashall -w
ピットを避ける
- フラッシュするスマートフォンを選択するときは、pixel2 USバージョンを購入しないでください。ブートローダーのロックを解除できません。pixel2スマートフォンをフラッシュする場合は、ヨーロッパバージョンを購入する必要があります。
- 画像をインポートする前に、新しくコンパイルされた画像ファイル3または4をpixel3でフラッシュする必要がある場合、画像ファイルをフラッシュするときに「定義されたデータ型に対して値が大きすぎます」というメッセージが表示されます。
- 必ずfastbootdモードでマシンをフラッシュしてください。そうしないと、システムにフラッシュするときにエラーが発生します。「パーティションはfastbootdでフラッシュする必要があります」
- :電話の元のシステムがAndroid 11の場合、Android 10.0の画像ファイルをデバイスに書き込むと、書き込みに失敗します。最初に公式Webサイトにアクセスして、コンパイルされたソースブランチのファクトリイメージを書き込み、次にAndroid10.0のイメージファイルを書き込むことをお勧めします。
- fastboot flashall -wの入力後に「デバイスの待機」が表示された場合は、新しくコンパイルされたイメージファイルをpixel3にフラッシュします。これらの手順はroot権限で実行する必要があります。
最終レンダリング
参考リンク
https://blog.csdn.net/weixin_45767368/article/details/105962606?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-6&spm=1001.2101.3001.4242
https://developers.google.com/android /drivers#bluelineqp1a.190711.019
https://source.android.google.cn/devices/bootloader/fastbootd?hl=zh-cn
https://www.jianshu.com/p/1f4a2b18246a