Androidデバイスエミュレータのモデルを変更するだけ

プロローグ

一見、非常に単純な作業のように見えます。一部の読者は、あごひげを生やした時代でも、あらゆる種類の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







:





  1. adb root







  2. adb shell avbctl disable-verification







  3. shell exit







  4.  adb reboot







  5. adb root



     





  6. 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. , !








All Articles