将我的apk推送到/ system/app

Tsi*_*mmi 23 android

如何将我的应用程序包推送到Android模拟器"/ system/app"文件夹?

我已经尝试过使用:
"adb push myApk.apk/system/app"
它给了我这个:

"failed to copy: ... No space left on device"
Run Code Online (Sandbox Code Playgroud)

虽然从设置 - > sdCard和手机存储,我获得了37Mb的内部可用空间.

这种需求的重点
与权限有关.

我需要拥有INSTALL_PACKAGES权限
,我知道通过将我的应用程序
放在/ system/app中,我获得了该权限.

pos*_*ong 52

我可以/system/app通过以下步骤安装APK .

  1. 将APK推送到SD卡.

    $ adb push SecureSetting.apk /sdcard/  
    
    Run Code Online (Sandbox Code Playgroud)
  2. 进入控制台并获取shell

    $ adb shell
    
    Run Code Online (Sandbox Code Playgroud)
  3. 切换到超级用户.如果您的设备未植根,请先将其设置为root.(如果你不知道如何做到这一点,那就是谷歌.)

    $ su 
    
    Run Code Online (Sandbox Code Playgroud)
  4. 使用WRITE权限重新安装系统分区.

    $ mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system 
    
    Run Code Online (Sandbox Code Playgroud)
  5. 猫您的APK从/sdcard//system/,有些人得到了失败,cp命令由于cp不支持.所以请cat改用.

    $ cat /sdcard/SecureSetting.apk > /system/app/SecureSetting.apk 
    
    Run Code Online (Sandbox Code Playgroud)
  6. /system分区重新分配回READ-ONLY,然后退出

    $ mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system
    $ exit
    
    Run Code Online (Sandbox Code Playgroud)

然后重启你的设备,APK应该已经安装/system/app.

  • 谢谢 !那很棒.有没有办法避免重启? (2认同)
  • 找到了一种避免重启的方法,但它只在安装busybox时才有效.您只需要使用以下命令"install /sdcard/yourapkfile.apk/system/app"来替换上面答案的第5步. (2认同)
  • 我发现,对于第4步,大部分时间它也有效:mount -o remount,rw/system (2认同)
  • 只是指出一些东西,并非所有设备都有yaffs2文件系统上面的版本`mount -o remount,rw/system`是一种更好的方法. (2认同)

Rya*_*ord 6

通常,访问"/ system /"目录的唯一方法是使设备生根.我不知道这是否是模拟器所需的.那可能是你的问题.