App2sd功能和Asec文件
本文原创作者:Cloud Chou. 欢迎转载,请注明出处和本文链接
1. asec文件是什么?
asec的全称是Android Secure External Caches
以前app安装好之后,app和app的数据都是放在data分区,而data分区经常存储空间不够,
于是从Android 2.2, Froyo版本开始,Android开始支持App2Sd功能,
所谓的App2Sd就是安装apk时把apk安装到Sd卡,apk的数据也放到sd卡,
官方的app2sd功能比较鸡肋,由开发者自己决定是否支持app2sd功能,这样大部分应用不支持app2sd功能
而民间的app2sd功能实现时,直接把sdcard挂载到data目录,这样所有的数据都会放在sdcard上,
如果sdcard够大的话,便能解决手机data分区不够的问题。
官方的app2sd功能实现时会建立/sdcard/android_secure,
然后在该目录为每个支持app2sd功能的应用建立asec文件
2.官方app2sd功能的最初实现
官方实现的app2sd功能,最初是在/sdcard目录下建立一个android_secure目录,
然后在该目录下为支持app2sd功能的应用建立一个对应包名的asec文件,
比如com.shuame.mobile,那么建立的文件是com.shuame.mobile.asec,
asec文件是一个镜像文件,Android利用该文件建立一个loop设备,
Android还会为每个应用创建一个挂载点,例如:/asec/com.shuame.mobile
然后将建立好的loop设备挂载到/asec/com.shuame.mobile
3. asec文件存在哪个目录
最初asec文件存放在/sdcard/android_secure目录,
后来存放在/sdcard/.android_secure目录下
4. 为了保护sdcard目录下的android_secure目录不被其它第三方应用搞坏,所采取的措施
为了保护sdcard目录下的android_secure目录不被其它第三方应用搞坏,
最先采取的措施是采取挂载一个只读并且零字节的临时文件系统到/sdcard/android_secure目录,
这样第三方应用就不能操作该目录
为了实现该目的,采取的步骤如下所示:
1) Mount checked media at a secure location (/mnt/secure/staging)
2) Ensure /android_secure exists on the media, (creating if it doesnt)
3) Bind-mount /mnt/secure/staging/android_secure -> /mnt/secure/asec
(where only root can access it)
4) Mount an RDONLY zero-sized tmpfs over /mnt/secure/staging/android_secure
5) Atomically move /mnt/secure/staging to the publicly accessable storage
directory (/mnt/sdcard),move挂载时,其实是使用了MS_BIND选项
采取这个措施后, Android还为每个应用创建的挂载点也变化了,
放在/mnt/asec目录,例如/mnt/asec/com.shuame.mobile,
所以在支持app2sd功能的手机上常常可以看到很多/mnt/asec/* 的挂载点
后来为了进一步保护android_secure目录,
将android_secure目录重命名为.android_secure目录
5. /data/app-asec目录用途
/Path to external storage where *only root can access ASEC image files*/
const char *Volume::SEC_ASECDIR_EXT = “/mnt/secure/asec”;
/Path to internal storage where *only root can access ASEC image files*/
const char *Volume::SEC_ASECDIR_INT = “/data/app-asec”;
/mnt/secure/asec对应外置sd卡上的.android_secure目录,
/data/app-asec对应内置sd卡上的.android_secure目录,
该目录下一般用于存放asec文件,Android系统会将这些asec镜像文件挂载到/mnt/asec/com.*
App2sd功能和Asec文件相关推荐
- 平板实现app2sd功能
平台:android4.0 场景:平板上都默认不插入SD卡,所以会将mnt/sdcard指向flash上分出来的某个块,即使默认的app2sd功能存在,也是一个假象. 时间:2012.5.25 and ...
- 如何开启APP2SD功能
开启APP2SD功能 当我们把Nexus One升级到Android 2.2后会发现该系统原生支持的APP2SD功能并没被激活,即应用程序菜单中"移动至SD卡"按钮是灰色不能按的. ...
- android之VOLD:staging目录作用与ASEC文件 -总结
/mnt/secure/staging 来看一下mountVol代码 intVolume::mountVol() { intrc =0; charerrmsg[255]; constchar*moun ...
- java上传文件功能_Java MemoryMapped文件的功能
java上传文件功能 Java MemoryMapped文件的功能 在JDK 1.4中,内存映射文件的一个有趣功能被添加到Java中,该功能允许将任何文件映射到OS内存以进行有效读取. 内存映射文件可 ...
- 《C++ Primer 第五版》(第2.5节,第3.1-3.4节) ——采用预处理功能编写头文件,string初始化和字符操作,vector初始化和迭代器
1.采用预处理功能编写头文件 在头文件定义(头文件中的内容是只能被定义一次的实体)过程中,为了防止头文件重复包含的情况,采用预处理器的一个头文件保护符功能,格式为:{ #ifndef 预处理变量(通 ...
- test命令用法。功能:检查文件和比较值
test命令用法.功能:检查文件和比较值 1)判断表达式 if test (表达式为真) if test !表达式为假 test 表达式1 –a 表达式2 两个表达 ...
- 使用TeraTerm自带SSH SCP功能,传送文件
■使用TeraTerm自带SSH SCP功能,传送文件 非常方便实用!!!! ・上传文件的时间戳信息 使用此工具上传文件,会保留文件的时间戳信息!!! (使用 XL Deploy 发布程序, 不会保留 ...
- 超详细的实现上传文件功能教程,文件上传实现。
重要声明:本文章仅仅代表了作者个人对此观点的理解和表述.读者请查阅时持自己的意见进行讨论. 本文更新不及时,请到原文地址浏览:<超详细的实现上传文件功能教程,文件上传实现.>. 一.文件上 ...
- 功能强大的文件上传插件带上传进度-WebUploader
WebUploader是由Baidu WebFE(FEX)团队开发的一个以HTML5/FLASH构建的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用老 ...
最新文章
- 关于JS客户端对服务器控件赋值,Post后不能保留值的解决办法
- 【NLP】新分类!全总结!最新Awesome-SLU-Survey资源库开源!
- [译]GC专家系列3-GC调优
- 页面加载图片前用空态图代替真正图片
- 计算机主机设备有限公司,一种计算机主机设备
- 山西省吕梁市职称计算机考试,山西吕梁考点2012年职称计算机考试时间通知
- 购买域名和个人网站备案流程
- 彻底弄懂typedef struct和struct定义结构体的区别
- 手机移动端WEB资源整合
- 看脸的时代,AI医美为什么没有成为风口?
- 批量清理VS编译产生的文件
- 大数据必学Java基础(一):Java体系结构、特性和优势
- 展望未来:2023年及未来值得关注的9大元宇宙趋势
- 简单几步学会java爬虫
- 基于C++的http服务端开发
- 现在是不是投资指数基金的好时候?
- 深信服AF防火墙重置密码
- 给朋友的简短独特的生日祝福语
- CSDN红色字体,蓝色字体,字体大小设置
- PS设计逼真的火焰燃烧字体
热门文章
- c语言中使用的字符常量 其起止标记,C Primer Plus学习笔记(三)- 字符串和格式化输入/输出...
- 群晖搭建Blynk服务器 可开外网及改Mixly文件完美支持教程
- 韦根读卡电路c语言程序,RFID读卡模块电路图、PCB源文件 125K RFID读卡模块 - 下载 - 搜珍网...
- 如何用光盘安装服务器系统教程,光盘、硬盘怎么安装系统(图文教程)
- 车联网各领域头部企业排行榜!
- PaddlePaddle入门-1
- 【低功耗蓝牙BLE】连接事件和相关参数
- 华为IOT设备消息上报和消息下发验证
- C#控件篇 - PictureBox控件设置滚动条
- html%3ca%3e标签中有变量,经过代码审计找出网站中的XSS漏洞实战(三)