本文原创作者: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文件相关推荐

  1. 平板实现app2sd功能

    平台:android4.0 场景:平板上都默认不插入SD卡,所以会将mnt/sdcard指向flash上分出来的某个块,即使默认的app2sd功能存在,也是一个假象. 时间:2012.5.25 and ...

  2. 如何开启APP2SD功能

    开启APP2SD功能 当我们把Nexus One升级到Android 2.2后会发现该系统原生支持的APP2SD功能并没被激活,即应用程序菜单中"移动至SD卡"按钮是灰色不能按的. ...

  3. android之VOLD:staging目录作用与ASEC文件 -总结

    /mnt/secure/staging 来看一下mountVol代码 intVolume::mountVol() { intrc =0; charerrmsg[255]; constchar*moun ...

  4. java上传文件功能_Java MemoryMapped文件的功能

    java上传文件功能 Java MemoryMapped文件的功能 在JDK 1.4中,内存映射文件的一个有趣功能被添加到Java中,该功能允许将任何文件映射到OS内存以进行有效读取. 内存映射文件可 ...

  5. 《C++ Primer 第五版》(第2.5节,第3.1-3.4节) ——采用预处理功能编写头文件,string初始化和字符操作,vector初始化和迭代器

    1.采用预处理功能编写头文件 在头文件定义(头文件中的内容是只能被定义一次的实体)过程中,为了防止头文件重复包含的情况,采用预处理器的一个头文件保护符功能,格式为:{  #ifndef 预处理变量(通 ...

  6. test命令用法。功能:检查文件和比较值

    test命令用法.功能:检查文件和比较值 1)判断表达式 if test  (表达式为真) if test !表达式为假 test 表达式1 –a 表达式2                  两个表达 ...

  7. 使用TeraTerm自带SSH SCP功能,传送文件

    ■使用TeraTerm自带SSH SCP功能,传送文件 非常方便实用!!!! ・上传文件的时间戳信息 使用此工具上传文件,会保留文件的时间戳信息!!! (使用 XL Deploy 发布程序, 不会保留 ...

  8. 超详细的实现上传文件功能教程,文件上传实现。

    重要声明:本文章仅仅代表了作者个人对此观点的理解和表述.读者请查阅时持自己的意见进行讨论. 本文更新不及时,请到原文地址浏览:<超详细的实现上传文件功能教程,文件上传实现.>. 一.文件上 ...

  9. 功能强大的文件上传插件带上传进度-WebUploader

    WebUploader是由Baidu WebFE(FEX)团队开发的一个以HTML5/FLASH构建的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用老 ...

最新文章

  1. 关于JS客户端对服务器控件赋值,Post后不能保留值的解决办法
  2. 【NLP】新分类!全总结!最新Awesome-SLU-Survey资源库开源!
  3. [译]GC专家系列3-GC调优
  4. 页面加载图片前用空态图代替真正图片
  5. 计算机主机设备有限公司,一种计算机主机设备
  6. 山西省吕梁市职称计算机考试,山西吕梁考点2012年职称计算机考试时间通知
  7. 购买域名和个人网站备案流程
  8. 彻底弄懂typedef struct和struct定义结构体的区别
  9. 手机移动端WEB资源整合
  10. 看脸的时代,AI医美为什么没有成为风口?
  11. 批量清理VS编译产生的文件
  12. 大数据必学Java基础(一):Java体系结构、特性和优势
  13. 展望未来:2023年及未来值得关注的9大元宇宙趋势
  14. 简单几步学会java爬虫
  15. 基于C++的http服务端开发
  16. 现在是不是投资指数基金的好时候?
  17. 深信服AF防火墙重置密码
  18. 给朋友的简短独特的生日祝福语
  19. CSDN红色字体,蓝色字体,字体大小设置
  20. PS设计逼真的火焰燃烧字体

热门文章

  1. c语言中使用的字符常量 其起止标记,C Primer Plus学习笔记(三)- 字符串和格式化输入/输出...
  2. 群晖搭建Blynk服务器 可开外网及改Mixly文件完美支持教程
  3. 韦根读卡电路c语言程序,RFID读卡模块电路图、PCB源文件 125K RFID读卡模块 - 下载 - 搜珍网...
  4. 如何用光盘安装服务器系统教程,光盘、硬盘怎么安装系统(图文教程)
  5. 车联网各领域头部企业排行榜!
  6. PaddlePaddle入门-1
  7. 【低功耗蓝牙BLE】连接事件和相关参数
  8. 华为IOT设备消息上报和消息下发验证
  9. C#控件篇 - PictureBox控件设置滚动条
  10. html%3ca%3e标签中有变量,经过代码审计找出网站中的XSS漏洞实战(三)