????????android remount 在調(diào)試android 系統(tǒng)的時(shí)候是個(gè)非常有用的調(diào)試手段, 有remount 的幫助, 可以輕松的修改系統(tǒng)分區(qū)的某些文件,或者在系統(tǒng)分區(qū)添加刪除文件。但有時(shí)候remount 也會因?yàn)橐恍﹙erity, checkpoint ,和remount 自身的一些原因不能正常工作。最近因?yàn)楣ぷ髟颍瑢emount 的機(jī)制進(jìn)行了一個(gè)大概的了解。
remount的工作原理:
????????android 系統(tǒng)native 層通過overlayfs 將只讀的系統(tǒng)分區(qū)改變成了 “可讀可寫” 的分區(qū)。拿vendor 分區(qū)作為例子:
????????????????????????????????????????????????????????圖1 vendor by overlayfs
reomunt 后, 系統(tǒng)工作的概圖如下:
????????????????????????????????????????????????????????圖2 runtime
????????remount 的時(shí)候, 在data 分區(qū)或者 super 分區(qū)通過dm linear 創(chuàng)建了scratch 分區(qū)。 系統(tǒng)中的各個(gè)分區(qū)以erofs 的文件類型mount 到各個(gè)mount point 。 而upper 中的文件目錄以在/mnt/scratch/overlayfs 目錄中。 通過overlayfs 文件系統(tǒng), 將lower_dir 和 upper_dir 建立起來。 修改或增減的文件,會在upper_dir 中。 這樣, 可讀可寫的各個(gè)系統(tǒng)分區(qū)就準(zhǔn)備好了。
remount 的流程:
- 建立scratch 分區(qū)
- make f2fs on scratch
- 建立overlayfs 文件系統(tǒng) , 如lower_dir = /system , upper_dir=/mnt/scratch/overlayfs/system/upper
- 重啟的時(shí)候, 流程如下圖
文章來源:http://www.zghlxwxcb.cn/news/detail-489628.html
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖3 開機(jī)時(shí)的調(diào)用流程圖?文章來源地址http://www.zghlxwxcb.cn/news/detail-489628.html
- 重啟后, 如果執(zhí)行 adb remount ,那么 fs_mgr_overlayfs_mount 會被重新調(diào)用, 將readonly 的屬性去掉。就可以讀寫系統(tǒng)分區(qū)了。
到了這里,關(guān)于android remount 工作原理簡介的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!