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

Kotlin应用无法找到已存在的Chrome Cookies文件求助

Chrome Cookies文件存在却提示“未找到”的排查方案

问题场景

我正在开发一款Kotlin应用,需要访问Chrome的Cookies文件,路径为/data/data/com.android.chrome/app_chrome/Default/Cookies。通过adb shell和Amaze文件管理器能确认文件存在,且应用已获取root权限,但始终报“文件未找到”错误。

直接读取时的错误日志

04-20 13:42:52.590 25419 25419 E AndroidRuntime: android.database.sqlite.SQLiteCantOpenDatabaseException: Cannot open database '/data/data/com.android.chrome/app_chrome/Default/Cookies' with flags 0x1: Directory /data/data/com.android.chrome/app_chrome/Default doesn't exist

尝试复制的代码

var proc = Runtime.getRuntime().exec("su --preserve-environment -c cp "+tempCookiesDatabaseFile.absolutePath+" "+CHROME_COOKIES_DATABASE_FILE.absolutePath)
var exitVal = proc.waitFor()
if (exitVal != 0) {
    val errorStream: InputStream = proc.getErrorStream()
    val stderrReader = BufferedReader(InputStreamReader(errorStream))
    for (line in stderrReader.lines()) {
        Log.e("CookieSwapper", line)
    }
}

复制时的错误日志

04-20 14:52:22.565 31774 31774 E CookieSwapper: cp: bad '/data/data/com.android.chrome/app_chrome/Default/Cookies': No such file or directory

排查方法

  • 修正cp命令的参数顺序:你的代码里cp命令的源和目标写反了!正确格式是cp [源文件] [目标文件],应该把Chrome的Cookies文件复制到临时目录,代码要改成:
    var proc = Runtime.getRuntime().exec("su --preserve-environment -c cp "+CHROME_COOKIES_DATABASE_FILE.absolutePath+" "+tempCookiesDatabaseFile.absolutePath)
    
    这是可能导致失败的核心错误。
  • 检查SELinux状态:Android的SELinux可能阻止root进程访问Chrome私有目录。执行su -c getenforce查看状态,若为Enforcing,临时关闭测试:su -c setenforce 0,若有效需考虑添加SELinux规则。
  • 验证Chrome用户数据目录的实际路径:部分Chrome变种(如国内定制版、Beta/Dev版)的Cookies路径可能不同。执行su -c ls -l /data/data/com.android.chrome/app_chrome/确认是否存在Default目录,或查看是否有Profile开头的目录;也可通过su -c ps | grep chrome找到Chrome进程,核实其数据目录。
  • 使用绝对路径执行cp命令:有些su环境下PATH不包含系统命令路径,直接用/system/bin/cp替代cp,确保命令能被正确调用。
  • 先关闭Chrome进程:Chrome运行时会对Cookies数据库加锁,执行su -c am force-stop com.android.chrome杀死进程后,再尝试复制操作。
  • 检查文件权限与所属用户:执行su -c ls -l /data/data/com.android.chrome/app_chrome/Default/Cookies查看文件权限和所属用户(通常为u0_aXX),确认root用户拥有读取权限。
  • 用File类验证路径可访问性:在代码中通过File(CHROME_COOKIES_DATABASE_FILE.absolutePath).exists()和isFile()判断文件是否能被当前进程识别,排查沙箱限制导致的路径不可见问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:53:10