Prolog
Sekilas, ini tampak seperti tugas yang sangat sederhana. Beberapa pembaca bahkan dapat di masa berjanggut itu menaiki semua jenis 4pd, me-root layar sentuh Samsung mereka, mengubah konten file build.prop dan menunjukkan pengeluh naif iPhone 15+ Max Pro mereka. Namun, ternyata, dan seperti yang sering terjadi, tidak semuanya sesederhana itu dan ada jebakan di sini. Artikel ini dirancang untuk membantu pekerja biasa menghindari semua rintangan dan lubang dalam perjalanan ke tujuan mereka!
Penolakan
Saya akan segera memperingatkan Anda bahwa saya suka menulis artikel semacam itu secara mendetail, bukan demi volume dan multi-huruf, tetapi demi pencelupan maksimum dalam masalah dan cara mengatasinya. Harap perhatikan bahwa saya sedang mengerjakan macOS , jadi semua perintah di terminal akan diorientasikan untuk OS ini. Juga, perlu dicatat bahwa saya mengubah semua ini untuk API 30 , yaitu yang paling terbaru pada saat penulisan ini. Seperti yang dikatakan internet, kesulitan tentang topik ini dimulai dengan API 29 .
Mengapa ini dibutuhkan?
Saya berasumsi bahwa Anda, pembaca yang budiman, punya alasan bagus untuk ini, jika tidak, Anda tidak akan melakukan ini. Kemungkinan besar Anda, seperti saya, memiliki pemeriksaan terprogram untuk model perangkat tempat aplikasi diluncurkan, seperti di sini . Ngomong-ngomong, dengan cara ini akan memungkinkan untuk memeriksa hasil kerja kami. Cara kedua dan lebih mudah untuk memeriksa model emulator adalah melalui pengaturan perangkat di bagian informasi perangkat:
. .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. , !