在 Android 应用程序(带有本机组件)和系统服务之间共享文件

问题描述 投票:0回答:1

Android 对文件的限制更加严格,但如何在应用程序之间共享文件却非常清楚...我如何在 Surfaceflinger/audioflinger 等系统服务和应用程序之间共享文件?请注意,我同时拥有该应用程序和 AOSP 代码(这意味着我可以用 C/C++ 修改两者)。在以前的Android版本中,系统服务可以访问/data/data。目前,通过测试,我注意到应用程序只能访问自己的数据和共享 SD 卡存储,而系统服务则无法访问其中任何一个。对此最好的办法是什么?应用程序和服务之间是否存在我不知道的共享目录?或者有没有办法颠覆对此特定文件的检查

我试图避免的最后手段是修改系统服务和我的应用程序以通过套接字进行通信

注意,我的修改不是针对商业产品,这是我正在进行的个人AOSP修改项目,所以我目前关心的不是“隐私/安全”

android android-source android-sdcard file-sharing system-services
1个回答
0
投票
  1. 您确实拥有 FileProvider API
  2. App客户端可以通过AIDL绑定到系统服务,然后共享数据
  3. 您可以创建自己的目录,使其对所有人开放,并根据需要设置SEPolicy(对所有人开放,或对其进行限制)。然后你就有了一个完整的目录,可以在 Java 和用 C 编写的系统服务之间共享。
创建新文件:
  • 来自 /device/your_flavor/init.*.rc
  • “初始化时”下面
  • 可以添加:mkdir /data/my_folder 0666 system system
更改SEPolicy(使用setenforce):

你就是操作系统,你可以适应任何限制。

© www.soinside.com 2019 - 2024. All rights reserved.