You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android模拟器读取adb推送文件遇EACCES权限拒绝问题求助

问题分析与解决

核心原因是adb推送至模拟器的文件默认所有者为root用户,而Android应用是以普通应用用户(如u0_aXXX)身份运行的,默认没有权限读取root所属的文件。真机上系统会自动处理adb推送文件的权限适配,所以不会出现这个问题。

解决方法

方法1:修改文件所有者为应用用户

  1. 先获取你的应用对应的用户ID:
    adb shell dumpsys package com.your.package.name | grep userId
    
    输出类似userId=10156,对应的用户就是u0_a156(格式为u0_a+userId后四位)。
  2. 修改文件所有者:
    adb shell chown u0_aXXX:u0_aXXX /sdcard/Documents/myfile1.txt
    
    替换其中的u0_aXXX为你获取到的应用用户。

方法2:放宽文件权限(快速测试用)

直接修改文件权限,让所有用户都能读写:

adb shell chmod 666 /sdcard/Documents/myfile1.txt

这种方式无需获取应用用户ID,适合快速验证,但从安全性角度不建议在正式环境使用。

补充说明

你自己用File API创建的文件,所有者是应用自身的用户,所以应用天然拥有读写权限,这就是为什么能正常读取的原因。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 22:27:19