当前位置: 首页 > news >正文

网站重构企业查询信息平台

网站重构,企业查询信息平台,西安制作证件文凭,网站欣赏与创建网页教案1.代码位置 system/vold/ 路径下,查看bp文件,发现是编译system/vold/main.cpp编译生成可执行文件vold 2.app侧调用代码流程 2.1 整体框架 #mermaid-svg-lqO8phN62rKNW407 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#…

1.代码位置

system/vold/ 路径下,查看bp文件,发现是编译system/vold/main.cpp编译生成可执行文件vold

2.app侧调用代码流程

2.1 整体框架

StorageManager StorageManagerService VoldNativeService VolumeManager kernel App端发起调用 Binder SystemService进程 Vold进程 Binder linux侧 syscall StorageManager StorageManagerService VoldNativeService VolumeManager kernel

2.2 StorageManagerService调用栈

  • 调用复位Vold的操作
StorageManagerService VolumeManager connectVold() onDaemonConnected() Vold进程 收到ACTION_USER_ADDED的广播 Binder调用 (onUserAdded) call resetIfBootedAndConnected () Binder调用 (onUserAdded) alt [监听Broadcast] [复位vold进程] StorageManagerService VolumeManager

2.3 vold中umount的流程

StorageManagerService EmulatedVolume StorageSessionController PublicVolume Ntfs.cpp Utils.cpp App调用 / 插入u盘 mount mount onVolumeMount回调 10s后发送H_RESET的Handler消息 收到消息,执行resetIfBootedAndConnected() alt [mount成功] [mount失败] Vold进程 doMount() ntfs::Mount 执行ntfs格式的文件挂载 Mount--调用ntfs-3g进程来执行挂载 MountUserFuse() 执行 FUSE 层的挂载 BindMount() 执行mount命令 unmount() doUnmount() KillProcessesUsingPath StorageManagerService EmulatedVolume StorageSessionController PublicVolume Ntfs.cpp Utils.cpp
  • mount的日志
I vold    : Mounting emulated fuse volume
I vold    : Bind mounting /data/media to /mnt/pass_through/0/emulated
I vold    : Bind mounting //data/media/0/Android/data on /mnt/user/0/emulated/0/Android/data
I vold    : Bind mounted //data/media/0/Android/data on /mnt/user/0/emulated/0/Android/data
I vold    : Bind mounting //data/media/0/Android/obb on /mnt/user/0/emulated/0/Android/obb
I vold    : Bind mounted //data/media/0/Android/obb on /mnt/user/0/emulated/0/Android/obb
I vold    : Configuring read_ahead of /mnt/user/0/emulated fuse filesystem to 256kb
I vold    : Writing 256 to /sys/class/bdi/0:108/read_ahead_kb
I vold    : Configuring max_ratio of /mnt/user/0/emulated fuse filesystem to 40
I vold    : Writing 40 to /sys/class/bdi/0:108/max_ratio
  • unmount的日志
49 10441 I vold    : Killing all processes referencing /storage/emulated/0
49 10441 I vold    : Unmounting /mnt/user/0/emulated/0/Android/data
49 10441 I vold    : Unmounted /mnt/user/0/emulated/0/Android/data
49 10441 I vold    : Unmounting /mnt/user/0/emulated/0/Android/obb
49 10441 I vold    : Unmounted /mnt/user/0/emulated/0/Android/obb
49 10441 I vold    : Unmounting fuse path /mnt/user/0/emulated
49 10441 I vold    : Unmounting pass_through_path /mnt/pass_through/0/emulated

2.3.1 关于fuse

MountUserFuse 的背景

  1. Emulated Storage
  • 在 Android 中,用户对存储的访问并不是直接操作底层物理存储,而是通过模拟层(emulated layer)。
  • 例如,路径 /storage/emulated/0 是映射到实际的存储设备(如内置存储或 SD 卡)。
    这种机制的核心是为了实现多用户支持和存储隔离。
  1. FUSE (Filesystem in Userspace)
  • FUSE 是一种在用户空间实现文件系统的技术。它允许非特权用户通过用户态程序操作虚拟文件系统。
  • 在 Android 中,FUSE 被用来为应用程序提供访问存储的接口,并支持权限控制、文件操作拦截等功能。
  1. 挂载点管理
  • MountUserFuse 的任务是为每个用户创建和管理 FUSE 挂载点,以便每个用户只能访问自己的存储内容。

3.linux侧通知上来的代码流程

3.1.1 linux侧查询文件大小

App Environment EnvironmentUser StatFs getExternalStorageDirectory() getExternalStorageDirectory() new doStat(syscall调用) 得到文件目录相关信息 App Environment EnvironmentUser StatFs

3.1.2 U盘插入事件监听 (vold进程)

mai.cpp NetLinkManager kernel NetlinkHandler VolumeManager Disk Instance() start() 创建socket,监听uevent事件 传上来的uevent事件 handleBlockEvent 往下就是对插入事件的具体处理 handleDiskChanged readMetadata readPartitions createPublicVolume mai.cpp NetLinkManager kernel NetlinkHandler VolumeManager Disk
http://www.yidumall.com/news/71270.html

相关文章:

  • 做网站需要学jq吗最近三天的新闻大事简短
  • 网站建设公司中心seo 推广怎么做
  • 西安手机商城网站设计更厉害的病毒2024
  • 网站建设 通知网络营销成功的案例
  • 美食网站怎样做锅包肉seo网站自动推广
  • 免费有限公司网站八八网
  • wordpress网站怎么进去谷歌海外广告投放
  • 金融公司网站建设快手流量推广网站
  • 北京做网站男生工资百度收录的网站多久更新一次
  • 做网站密云墨子学院seo
  • vps怎么做网站bt磁力猪
  • 网站语音转写怎么做直销的八大课程
  • 纯静态网站模板泰安做网站公司
  • 杂志在线设计网站bt搜索引擎下载
  • 宿迁新站seo搜狐酒业峰会
  • 移动版网站建设绍兴seo网站优化
  • 个人网站成品互联网推广公司
  • 网站开发属于什么部门四川seo
  • php做动态网站如何修改密码怎么上百度推广产品
  • 嘉兴城乡建设网站百度产品有哪些
  • 泰州做兼职的网站绍兴seo排名公司
  • 网站的网站建设企业广东省新闻
  • b2c网站是什么游戏推广员拉人技巧
  • 云南电商网站建设杭州网站seo优化
  • 做兼职设计去哪个网站好东莞网站推广及优化
  • b2c网站开发文档搜索引擎优化是免费的吗
  • 网站建设教程免费北京网络推广公司
  • 惠州注册公司代办公司东莞seo优化排名
  • 企业做网站域名需要自己申请吗买卖交易网
  • 深圳网络建设公司seo论坛站长交流