Ändern Sie einfach das Modell des Android-Geräteemulators

Prolog

Auf den ersten Blick scheint es eine sehr einfache Aufgabe zu sein. Einige Leser könnten sogar in diesen bärtigen Zeiten auf alle Arten von 4pd klettern, ihren Touchscreen Samsung rooten, den Inhalt der Datei build.prop ändern und naiven Lamern ihr iPhone 15+ Max Pro zeigen. Wie sich herausstellte und wie so oft, ist jedoch nicht alles so einfach und es gibt hier Fallstricke. Der Artikel soll gewöhnlichen Arbeitern helfen, alle Unebenheiten und Löcher auf dem Weg zu ihrem Ziel zu vermeiden!





Haftungsausschluss

Ich werde Sie sofort warnen, dass ich solche Artikel gerne ausführlich schreibe, nicht aus Gründen des Volumens und der Mehrfachbuchstaben, sondern um ein maximales Eintauchen in das Problem und die Art und Weise seiner Lösung zu erreichen. Bitte beachten Sie, dass ich unter macOS arbeite , sodass alle Befehle im Terminal für dieses Betriebssystem ausgerichtet sind. Es sollte auch beachtet werden, dass ich all dies für API 30 verwende , dh für das Neueste zum Zeitpunkt dieses Schreibens. Wie das Internet sagt, begannen die Schwierigkeiten zu diesem Thema mit API 29 .





Warum wird das benötigt?

Ich gehe davon aus, dass Sie, lieber Leser, einen guten Grund dafür haben, sonst hätten Sie dies nicht getan. Es ist sehr wahrscheinlich, dass Sie wie ich eine programmatische Überprüfung für das Gerätemodell haben, von dem aus die Anwendung gestartet wird, wie hier . Auf diese Weise ist es übrigens möglich, das Ergebnis unserer Arbeit zu überprüfen. Die zweite und einfachere Möglichkeit, das Emulatormodell zu überprüfen, sind die Geräteeinstellungen im Abschnitt Geräteinformationen:





. .apk - . . , , , . . , .





Der Bildschirm ließ mich nicht weiter gehen

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