You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

ro.secure值存储位置及AVD中APK安装失败问题咨询

解决AVD上APK安装失败及相关路径/系统属性问题

Hi Andy, let's work through this APK installation issue step by step, and clear up the confusion around ro.secure and the /data/local/tmp path:

一、如何修改ro.secure系统属性

ro.secure是Android系统的只读属性,默认会限制一些权限操作。要修改它,得先让你的AVD获取root权限并把系统分区挂载为可写,步骤如下:

  • 先启动你的AVD,然后在终端执行这两条命令获取root权限并挂载系统分区:
    adb root
    adb remount
    
    如果adb remount失败,先关掉AVD,再用这条命令重新启动模拟器(把[你的AVD名称]换成你实际的AVD名字):
    emulator -avd [你的AVD名称] -writable-system
    
    启动后再重新执行adb rootadb remount就行。
  • 接下来进入模拟器的命令行,修改ro.secure
    adb shell
    setprop ro.secure 0
    
    要是想让修改永久生效,可以编辑系统配置文件:
    adb shell
    vi /system/build.prop
    
    在文件里找到ro.secure=1这一行,改成ro.secure=0,保存退出后重启AVD就生效了。

二、找到并使用/data/local/tmp路径

这个是Android系统自带的临时目录,操作起来很简单:

  • 直接在终端执行adb shell进入模拟器的命令行,然后输入:
    cd /data/local/tmp
    
    ls命令就能看到目录里的内容。
  • 要是想把本地的APK传到这个路径,直接执行:
    adb push ~/Projects/TestApp/TestApp.apk /data/local/tmp/
    

三、规避权限问题的APK安装方法

如果直接用adb install失败,试试这种分步安装的方式:

  1. 先把APK推送到临时目录:
    adb push ~/Projects/TestApp/TestApp.apk /data/local/tmp/
    
  2. 进入模拟器命令行安装APK:
    adb shell
    pm install /data/local/tmp/TestApp.apk
    
    要是还是提示权限问题,先执行adb root再试安装。

另外,你提到的错误开头是INSTALL_FAILED_A...,如果是INSTALL_FAILED_ALREADY_EXISTS(应用已存在),可以加-r参数覆盖安装:

adb install -r ~/Projects/TestApp/TestApp.apk

内容的提问来源于stack exchange,提问作者Andy D

火山引擎 最新活动