mvs*_*gar 4 android android-virtual-device
这是相当一个非常古老的问题,但我很惊讶,没有任何解决方案都为我工作。我需要运行Android应用为Android版本7.0中创建在AVD(在仿真器)系统的应用程序。对于这一点,我想apk文件推到系统分区,但我不断收到错误消息,它是只读文件系统。我发现许多计算器类似的问题,但没有为我工作。我的根重新启动亚行,在回答类似的问题建议用重新装入执行,但系统分区的文件系统权限不会改变。这里有一个简单的会话:
mvsagar@mvslt:~/sw/android_sdk/platform-tools$ ./adb root
restarting adbd as root
mvsagar@mvslt:~/sw/android_sdk/platform-tools$ ./adb remount
remount succeeded
mvsagar@mvslt:~/sw/android_sdk/platform-tools$ ./adb push /home/mvsagar/projects/AndroidStudioProjects/LcnApps/app/LCNUE.apk /system/app/LCNUE.apk
adb: error: failed to copy '/home/mvsagar/projects/AndroidStudioProjects/LcnApps/app/LCNUE.apk' to '/system/app/LCNUE.apk': couldn't create file: Read-only file system
Run Code Online (Sandbox Code Playgroud)
我曾尝试手动具有读/写(RW)使用亚行壳选择重新安装,但重新挂载失败。
有没有什么办法已经阅读系统分区/写权限?
我的dev ENV是Android的工作室在Ubuntu。
使用 Q 时,这是唯一对我有用的解决方案:https : //stackoverflow.com/a/64397712/1898527
在此处添加完成步骤(感谢原作者):
> emulator -avd Pixel_3a_XL_API_29 -writable-system
> adb shell avbctl disable-verification
> adb disable-verity
Run Code Online (Sandbox Code Playgroud)
现在重新启动您的模拟器以使更改生效。
> adb root
> adb remount
> adb shell "su 0 mount -o rw,remount /system"
Run Code Online (Sandbox Code Playgroud)
注意:您需要一个没有 Google Play 的模拟器,否则这将不起作用。您可以按照此处描述的步骤获取它:https : //stackoverflow.com/a/45668555/1898527
就我而言,我使用avd(基于:Android 8.0(Oreo)标签/ ABI:google_apis / x86_64)。
$ emulator -avd Nexus_5X_API_26_APIs -writable-system
$ adb root
$ adb remount
Run Code Online (Sandbox Code Playgroud)
然后,/system是可写的。
$ adb push somefile /system/bin/ 是工作。