亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2771 | 回復: 1
打印 上一主題 下一主題

[Android] Android智能手機交換用戶分區(qū)和存儲分區(qū)的方法(適用于用戶分區(qū)較小的手機) [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-02-12 16:34 |只看該作者 |倒序瀏覽
Android智能手機交換用戶分區(qū)和存儲分區(qū)的方法(適用于用戶分區(qū)較小的手機)

本文檔只談思路,不含實際可操作軟件
操作需謹慎,后果自負

***** 手機必須先root *****


測試手機:聯(lián)想s899t
RAM:1G
ROM: 4G

實際使用過程中發(fā)現(xiàn),默認的用戶分區(qū)(/data)只有435MB,嚴重阻礙了應(yīng)用軟件的安裝(因為有些軟件必須裝在用戶分區(qū))
而,默認的存儲分區(qū)(/sdcard, or /mnt/sdcard)有>2GB空間可用,大部分閑置。思路是交換兩者以獲得足夠的用戶分區(qū),而較小的存儲分區(qū)完全不用擔心(可以外插sd卡)。


**********************************************
****************** 實戰(zhàn) **********************
**********************************************

有3個地方需要修改:
boot.img
        /init.rc
recovery.img
        /init.rc
system 分區(qū)內(nèi)
        /etc/vold.fstab
       
boot.img & recovery.img 可以從官方ROM中解壓縮提取出來,可以把二者視為兩個獨立的小系統(tǒng),互不關(guān)聯(lián)。一個好處是,一個系統(tǒng)損壞了,可以通過另一個系統(tǒng)修復。
正常情況下,boot.img & recovery.img 被直接復制到手機的ROM中的2個“軟件分區(qū)”(software partition).
        (software partition 和 hardware partition 區(qū)別可參考
                https://www.google.co.jp/url?sa= ... HwQySphjE54IXoDIr2g
        簡言之,hw partition 是由eMMC 廠商寫在硬件寄存器上的。一般不改。sw partition 是OS能識別的分區(qū)。在一個hw partition 中,可以劃分多個sw partition.)


修改時候,需要涉及4個分區(qū),我的手機上默認情況是:
p5                /data
p7                /boot
p8                /recovery
p11                /sdcard
具體識別方法先略過,看操作先:       

       
下一步,解開boot.img,修改/init.rc文件,重新打包boot.img,然后覆蓋原分區(qū)
1. 解包:可用軟件bootimg_tools.zip from http://forum.xda-developers.com/showthread.php?t=2319018       
2. 修改/init.rc
        搜索行:mount ext4 /dev/block/mmcblk0p5 /data nosuid nodev nodelalloc,noauto_da_alloc                #存儲boot.img的分區(qū)是mmcblk0p5 (不同機器p#不同,識別方法見后文)
        修改mmcblk0p5 到 mmcblk0p11 (后者是我的原/sdcard的分區(qū),識別方法見后文)
3. 重新打包,工具在bootimg_tools.zip
4. 覆蓋原分區(qū)
        先上傳boot.img 到 /sdcard 目錄
        adb shell su - "dd if=/sdcard/boot.img of=/dev/block/mmcblk0p7" (同樣,不同的機器mmcblk0p# 有不同的#,見后文識別這些分區(qū))

完全相同的上述4個步驟應(yīng)用于recovery.img,同樣燒錄到包含recovery的分區(qū)中。

最后步驟,修改當前系統(tǒng)的/system 分區(qū)中/etc/vold.fstab,可以找個app:“root explorer” 修改前,先設(shè)置/system 為"mount rw",改好后設(shè)回”mount ro".
        原文件中,行
                dev_mount sdcard /mnt/sdcard/external_sd 5 /devices/sdi4/mmc_host/mmc0/mmc0:0001/block/mmcblk0
        修改為
                dev_mount sdcard /mnt/sdcard/external_sd 11 /devices/sdi4/mmc_host/mmc0/mmc0:0001/block/mmcblk0
               
好了,重啟系統(tǒng)到recovery 模式,格式化/data分區(qū),完成后正常重啟。

在新系統(tǒng)中,進入“設(shè)置”-》“存儲”,格式化你的存儲分區(qū)。一切就安靜了。


               
*******************************************************
************************ 備注 *************************
*******************************************************

識別分區(qū)方法:(很重要)
/data
        執(zhí)行
                adb shell
                $su -
                #mount |grep -w '/data'
                /dev/block/mmcblk0p5 /data ext4 rw,...
        找到p5是我的/data分區(qū)

/sdcard
        用上述方法執(zhí)行
                #mount |grep -w '/mnt/sdcard'
                /dev/block/vold/179:11 /mnt/sdcard vfat rw,...
        不用介意179, 11就表示p11分區(qū)
       
/boot,/recovery
        因為只存boot.img 和 recovery.img,所以相對較小,一般不超過16MB。
        但是,默認這兩個分區(qū)用戶看不到,所以需要直接搜系統(tǒng)文件(小復雜)。
                進/sys/block,有兩個目錄
                        mmcblk0                手機存儲
                        mmcblk1                外置sd卡
                進mmcblk0,有一堆目錄,類似于
mmcblk0boot0
mmcblk0boot1
mmcblk0p1
mmcblk0p10
mmcblk0p11
mmcblk0p2
mmcblk0p3
mmcblk0p4
mmcblk0p5
mmcblk0p6
mmcblk0p7
mmcblk0p8
mmcblk0p9
                mmcblk0boot0,mmcblk0boot1不知道干啥用,估計和手機信號模塊什么的有關(guān),ignore
                mmcblk0p#就是我們要找的分區(qū)。檢查每個分區(qū)的大小,一個笨辦法是
                        #cat mmcblk0p7/size
                        32768
                數(shù)值以512B為單位,所以32768 大概是16MB。(這是我的/boot分區(qū),原因見下文)
                掃描過每個分區(qū)size后發(fā)現(xiàn)有2個分區(qū)是16MB,其他的低于4MB和大于16MB的都可忽略,這是因為/boot,/recovery 分區(qū)不需要大空間存儲。
                直接將兩個分區(qū)內(nèi)容復制下來
                        adb shell su - "dd if=/dev/block/mmcblk0p7 of=/sdcard/p7.img"
                        adb shell su - "dd if=/dev/block/mmcblk0p8 of=/sdcard/p8.img"
                p7.img p8.img 就是boot.img 和 recovery.img,然后按照上面的方法解包,兩者區(qū)別是,recovery 分區(qū)中有/res 目錄。所以在我的手機上p8.img是recovery.img,相應(yīng)的,mmcblk0p8是我的recovery分區(qū)。mmcblk0p7是boot分區(qū)
        注意,網(wǎng)上有些說明可以通過查看/proc/mtd找到boot recovery分區(qū),我的手機看不到。

論壇徽章:
0
2 [報告]
發(fā)表于 2014-02-12 16:35 |只看該作者
自己頂一把。這兩天玩的成果。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP