android.uid.system无法读取SD卡信息
在安卓开发过程中,有些应用需要system权限,可以在AndroidManifest.xml添加android:sharedUserId=“android.uid.system”,这样就可以让程序运行到系统进程中去,可以进行相应的系统操作。
但在AndroidManifest.xml中添加android:sharedUserId="android.uid.system"后,就无法对sd卡进行读写操作,比如在SD卡中创建一个新文件夹,是创建不成功的。如果把android:sharedUserId="android.uid.system"注释掉,就可以在SD卡进行IO操作了,但又不能达到相应的实现效果。在Settings中android:sharedUserId="android.uid.system"是不可少的,少了它很多Settings下应用直接开不了,或一开就报错。
解决方法一:
在system/vold 模块里的 Volume.cpp文件
在调用doMount的语句里做一下修改:
doMount(devicePath, path, false, false, false,1000, 1015, 0702, true)
↓
doMount(devicePath, path, false, true, false,1000, 1015, 0002, true)
修改后进行编译生成可执行bin文件,经过测试,直接push这个bin文件到手机中并不能解决这个问题,需要重新编译安卓或者相应的image文件。
解决方法二:
把SD卡操作的功能独立出去,做成一个独立的APK,然后在原项目中调用改功能。
注:网上还写有第三种解决办法,即在Android.mk中添加LOCAL_CERTIFICATE := platform。经测试,这种办法是不成功的。
因为,LOCAL_CERTIFICATE := platform与android:sharedUserId="android.uid.system"是相对应的,必须同时出现。
只是加入UID还不够,如果这时候安装APK的话发现无法安装,提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platform key。在"build\target\product\security"下有platform.pk8和platform.x509.pem两个文件,用这两个key签名后apk才真正可以放入系统进程中。在Android.mk中加入LOCAL_CERTIFICATE := platform其实就是用这两个key来签名。
android.uid.system无法读取SD卡信息相关推荐
- Arduino ESP32 第三方库读取SD卡信息(三)
Arduino ESP32 第三方库读取SD卡信息(三) 相关篇<Arduino ESP32 第三方库读取SD卡信息(一)> <Arduino ESP32 第三方库读取SD卡信息(二 ...
- Android NFC源码读取公交卡信息余额和交易记录
通过NFC的读模式,读取公交卡的余额和交易记录.可以读取深圳通.羊城通.北京卡.八达通.武汉通等. 源码亲测可用放心下载. 源码下载Eclipse版本:Android NFC源码读取公交卡信息余额和交 ...
- 【iCore1S 双核心板_ARM】例程十三:SDIO实验——读取SD卡信息
实验现象: 核心代码: int main(void) {/* USER CODE BEGIN 1 */HAL_SD_TransferStateTypedef State;/* USER CODE EN ...
- 关于Android读取SD卡存储的动态申请
关于Android读取SD卡存储的动态申请 介绍 Android的目录结构 数据的主要存储方式 疑惑 原来的代码:MainActivity.java 修改后代码: 介绍 这篇文章主要关于我学习SD卡的 ...
- android 读取sd卡中的图片
一.获取读取SD卡的权限 <!--在SDCard中创建与删除文件权限 --><uses-permission android:name="android.permissio ...
- android 音乐播放器 获取sd卡所有音乐文件,Android Studio音乐播放器无法读取SD卡,只有内部存储器...
我很抱歉,如果这原来是一个愚蠢的问题,它可能会成为一个快速修复,但我只是无法弄清楚.我在android studio中创建了音乐播放器,并且没有任何sdcard上的歌曲不会显示在列表视图中,只有内部内 ...
- Arduino UNO 读取SD卡的信息
Arduino UNO 读取SD卡的信息 SD卡座模块 接口描述: 控制接口:共6个引脚(GND.VCC.MISO.MOSI.SCK.CS),GND为地,VCC为供电电源,MISO.MOSI.SCK为 ...
- android 清空数组缓存,Android数据持久化之读写SD卡中内容的方法详解
本文实例讲述了Android数据持久化之读写SD卡中内容的方法.分享给大家供大家参考,具体如下: 前面文章里讲的那三个方法:openFileOutput.openFileInput虽然都能通过流对象O ...
- STM32F103读取SD卡的数据(fat文件模式)
实验目的 掌握SD卡协议原理,用STM32F103完成对SD卡的数据读取(fat文件模式). 实验原理 SD卡寄存器 SD卡总共有8个寄存器,用于设定或表示SD卡信息. 这些寄存器只能通过对应的命令访 ...
最新文章
- iOS 实现点击微信头像效果
- 华尔街风暴的深层原因
- hexo的next主题个性化教程 打造炫酷网站
- 【Python基础教程】变量的作用域详解
- php配置文件能直接用吗,我应该在PHP应用程序中使用YAML配置文件吗?
- 很慢怎么办_手机信号满格,网速却很慢怎么办?3招教你一键恢复网络
- 3d制作中需要注意的问题_浅谈线路板制作时需要注意的问题
- axure web组件_AXURE原型设计:移动端选择器的应用
- 企业数字化转型到底是什么?带你一图看懂答案
- git 查看pop内容_原创 | 有了Git这个操作,我再也不怕代码混乱了!
- UI 自动化框架对比2
- 软件工程(五)软件分析和软件设计
- 1秒等于多少微妙,纳秒
- UVALive4987(dp+贪心)
- Android音乐浮窗播放器
- 深度分析红米note9和华为nova8哪个好-红米note9和华为nova8区别
- 用jacob为word表格设置边框线
- Enable VT-x in your BIOS security settings, ensure that HAXM is installed properly
- openvino下载模型
- 头文件源文件定义标准