Android模拟器, push文件到system下文件夹权限,空间,SO文件没有自动安装的问题

  • 只读文件系统

需要把APK Push到模拟器下面的 /system/app 目录下面,报告

$ adb push app-debug.apk /system/app
failed to copy 'app-debug.apk' to '/system/app/app-debug.apk': Read-only file system

解决方法

$ adb remount
  • 内存不足
$ adb push app-debug.apk /system/app
failed to copy 'app-debug.apk' to '/system/app/app-debug.apk': Out of memory

原因众说纷纭,基本上大家都没怎么深究,有些镜像没有这个问题,有些就有问题。
解决方法:
不要使用Eclipse或者Android Studio 或者 AVD Manager的图形界面去启动模拟器,而是使用下面的命令:

$Android_SDK_HOME/tools/emulator -partition-size 256 -avd "模拟器的名字"
  • 包含SO的APK启动崩溃,日志中显示无法找到SO文件

原因,Android 设计问题,如果system/app下面的APK包含SO文件,不会自动安装,需要手工PUSH 到 "/system/lib"目录下面。

  • Android 5.0之后,最好推送到/system/priv-app目录

5.0之后的Android,最好推送到/system/priv-app目录。

  • Android 5.0之后,推送到系统目录后,没有自动安装应用

原因,Android 5.0之后,没有实时监视/system/priv-app目录的变化,只有在系统启动的时候才会扫描一下(重启系统很慢,我们可以按照如下操作节约时间),因此需要手工通知一下(有时候需要修改一下权限才可以)。

$ chown 644 /system/priv-app/my-app.apk

$ adb shell am restart

发布者

《Android模拟器, push文件到system下文件夹权限,空间,SO文件没有自动安装的问题》上有2条评论

  1. Android 5.0之后,推送到系统目录后,没有自动安装应用

    原因,Android 5.0之后,没有实时监视/system/priv-app目录的变化,只有在系统启动的时候才会扫描一下(重启系统很慢,我们可以按照如下操作节约时间),因此需要手工通知一下(有时候需要修改一下权限才可以)。

    问题:1.没有自动安装还有权限不对的情况存在吧,copy过去默认权限不是644,需要修改权限为644才能安装?

    2.使用adb shell am restart命令会让手机重启,这里除了重启手机还有其他方法吗?

    1. 权限问题,目前貌似与手机系统有关,有的厂家可以无视权限,系统会自动修改,有些则需要手工修改一下。
      adb shell am restart 并不是手机重启,而是application manager(am)服务重启了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注