プロローグ
一見、非常に単純な作業のように見えます。一部の読者は、あごひげを生やした時代でも、あらゆる種類の4pdに登り、タッチスクリーンのSamsungをルート化し、build.propファイルの内容を変更し、iPhone 15+ MaxProを素朴なラマーに見せることができました。しかし、結局のところ、そしてよくあることですが、すべてがそれほど単純なわけではなく、ここには落とし穴があります。この記事は、一般の労働者が目標に向かう途中のすべての凹凸を回避できるように設計されています。
免責事項
私は、ボリュームやマルチレターのためではなく、問題とそれを解決する方法に最大限に没頭するために、そのような記事をある程度詳細に書くのが好きであることをすぐに警告します。私はmacOSで作業しているので、ターミナルのすべてのコマンドはこのOS向けであることに注意してください。また、私はこれらすべてをAPI 30、つまりこの記事の執筆時点で最新のものに向けていることに注意してください。インターネットが言うように、このトピックの困難が始まったAPI 29。
なぜこれが必要なのですか?
親愛なる読者の皆さん、これには正当な理由があると思います。そうでなければ、そうしなかったでしょう。私のように、アプリケーションの起動元のデバイスモデルをプログラムでチェックしている可能性があります(次のように)。ちなみに、こうすることで、私たちの労力の成果を確認することができます。エミュレータモデルを確認する2番目の簡単な方法は、デバイス情報セクションのデバイス設定を使用することです。
. .apk - . . , , , . . , .
build.prop
, build.prop, system/. , , :
adb root : adb root
. , : adbd cannot run as root in production builds
. - Google :
- Google , adb root
. : restarting adbd as root
. Google , adb root
.
, build.prop:
build.prop
build.prop . :
. .apk . , PIXEL 3A XL ( , ):
. adb push (, adb pull GUI).
: adb push build.prop system/
:
adb: error: failed to copy 'build.prop' to 'system/build.prop': remote couldn't create file: Read-only file system
! , . , . .
( ):
emulator -avd Pixel3XLAPI30 -writable-system -no-snapshot -nocache
Pixel3XLAPI30 - , emulator -list-avds
-writable-system - .
-no-snapshot -nocache - , -.
( , ) :
PANIC: Missing emulator engine program for 'x86' CPU.
.bash-profile ( zsh .zshenv) macOS, . :
export ANDROIDHOME=~/Library/Android/sdk
ANDROIDHOME PATH:
export PATH=$ANDROIDHOME/emulator:$ANDROIDHOME/tools:$PATH
( source ~/.bash_profile
) ( source ~/.zshenv
). echo $PATH
PATH .
.
emulator -avd Pixel3XLAPI30 -writable-system -no-snapshot -nocache
.
-writable-system:
-writable-system make system & vendor image writable after 'adb remount'
adb remount
. adb root
, adb remount
.
adb remount
, . adb reboot. . . adb reboot
. , . . . adb remount
.
:
adb root
adb shell avbctl disable-verification
shell
exit
adb reboot
adb root
adb remount
! . build.prop : adb push build.prop system/
. adb reboot
… ...
build.prop
, ro.product.product.name ro.product.product.model , . , build.prop, : system, system_ext, vendor product. , . product. - !
- . …
, ( ). adb root
, adb unroot
. , , - .
, . RootBeer .
step-by-step. , !