国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
android 2.1全手工App to SD成功

 


 

手工App to SD的目的是為了消除不同機(jī)種和不同ROM之間的差異,一步一步人工確認(rèn)app2sd各環(huán)節(jié)執(zhí)行步驟的有效性,避免發(fā)生不必要諸如不能開機(jī)之類故障的麻煩。下面的步驟在Milestone 2.1上實(shí)現(xiàn),均已milestone 2.1系統(tǒng)為例。參照說明,知其原理,可以自行沿用于其他機(jī)種。

一、準(zhǔn)備工作:

1、學(xué)一點(diǎn)點(diǎn)android文件系統(tǒng)的知識:
milestone內(nèi)存分為兩個部分,一個部分是256M的程序運(yùn)行內(nèi)存,和App2SD無關(guān),不討論;我們關(guān)心的是另一部分,512M的機(jī)內(nèi)閃存這部分,對于這部分我們應(yīng)該把它理解為文件系統(tǒng)(FS),就如計(jì)算機(jī)的機(jī)內(nèi)硬盤,而不要去理解為程序內(nèi)存。
android是基于linux系統(tǒng)的,linux的文件系統(tǒng)掛載方式和微軟文件系統(tǒng)(vfat、ntfs)掛在方式是不同的,linux文件系統(tǒng)不需要盤符,文件系統(tǒng)需要掛載到某個目錄下面才能訪問。最基本的那個目錄是“/”,就是“根”。比如以微軟的兩個盤符為C:和D:的文件系統(tǒng)為例,假如我們把C:掛載到“/”上,還想訪問D:中的數(shù)據(jù),那么,我們就要用mkdir指令在“/”下面創(chuàng)造一個子目錄,然后再用mount指令將文件系統(tǒng)D:,掛載到那個子目錄上去。當(dāng)然linux不用C:、D:這樣的盤符,這樣軟件簡介只是為了理解上比較簡單。

回到milestone的512M內(nèi)置文件系統(tǒng)上(所謂的機(jī)內(nèi)閃存)。事實(shí)上,通過簡單的分析手機(jī)中的一個重要的初始化文件init.rc,我們會發(fā)現(xiàn),這機(jī)內(nèi)的512M文件系統(tǒng)不是作為一個單一的文件系統(tǒng)來使用的,這一點(diǎn),Root Explorer管理器工具(下面簡稱R.E.管理器)也能幫我們證實(shí),點(diǎn)擊/system看到的文件系統(tǒng)空間和點(diǎn)擊/data看到的文件系統(tǒng)空間是不同的,但他們確實(shí)都處于機(jī)內(nèi)閃存中。在init.rc里有這樣幾句

mount yaffs2 mtd@system /system
mount yaffs2 mtd@system /system ro remount #掛載yaffs2文件系統(tǒng)格式的 mtd@system 到目錄 /system

mount yaffs2 mtd@userdata /data nosuid nodev #掛載yaffs2文件系統(tǒng)格式的 mtd@userdata 到目錄 /data

上面幾句明確的指出了兩個文件系統(tǒng),而且掛載的讀寫屬性和Id設(shè)置均不同,App2SD要處理的部分是/data而不是/system,而系統(tǒng)核心程序主要是存放在“/”和“/system”中的,所以,只要不胡亂操作,一般是不會有什么副作用的。

android的應(yīng)用程序(簡稱app),存放點(diǎn)有些差異,隨系統(tǒng)一起安裝的app,存放在/system/app目錄中,這個是只讀目錄,沒有root權(quán)限是不能卸載的;而用戶自己安裝的app,存放在/data/app中,App2SD要解決的就是/data空間不足的問題,用SD卡上格式化出來的ext2分區(qū)來替代/data/app、/data/dalvik-cache和/data/app-private等目錄,從而達(dá)到擴(kuò)展用戶程序和VM cache等的空間。

2、一點(diǎn)點(diǎn)方便和一點(diǎn)點(diǎn)安全措施:
為了操作方便,我們需要兩個工具,一個叫超級終端,一個就是上面提到的R.E.管理器,這兩個工具都可以在電子市場里免費(fèi)得到。這兩個工具都需要root權(quán)限才能做我們需要的操作。
注意:這兩個工具安裝完之后,程序被存放在了/data/app目錄下,因?yàn)檫^一會兒這個目錄將被SD中的ext2文件系統(tǒng)掛載替代,假如出現(xiàn)掛載不成功,這兩個程序?qū)o法使用,為了給自己留后路,這里要做一步保險工作,將這兩個程序移到/system/app下面去,這樣做的目的是即便SD替換失敗,還能用這兩個工具來做一些必要的操作,從而恢復(fù)系統(tǒng)。
打開R.E.管理器,進(jìn)入/data/app,找到剛才安裝的超級終端,點(diǎn)中它長按,選拷貝,然后進(jìn)入/system/app,注意這時候/system/app是以只讀方式掛載的,在R.E管理器中點(diǎn)擊掛載為讀寫方式按鈕,即可粘貼超級終端程序到此目錄下。
同樣的方法拷貝R.E.管理器本身到/system/app下,這個操作可能使R.E.管理器crash,不過沒關(guān)系,重啟機(jī)器,R.E.管理器已成為系統(tǒng)自帶工具了。

3、一個必須的工具:
busybox是一個android系統(tǒng)指令的擴(kuò)展,由于App2SD需要用到不少linux的系統(tǒng)指令,busybox是必須安裝的,這個工具對于DIY是很有用的,熟悉linux的朋友會覺得使用busybox很方便。
在電子市場里免費(fèi)下載安裝,注意安裝好了以后是一個叫busybox-insteller的程序,必須運(yùn)行它,運(yùn)行busybox-insteller才是正真的安裝busybox,同樣需要root權(quán)限。

4、下載app2sd.rar包:
網(wǎng)上很多,搜索一下,機(jī)鋒里應(yīng)該就有。
這個包有專業(yè)的安裝說明,其實(shí)是一個install.sh腳本自動工作,但腳本工作可能不如自己手工來的安全,建議有DIY能力的朋友自己動手,可以參考腳本上的指令,但為了安全,不要使用該安裝腳本。

解壓包,將這個包里的必須要用的重要文件拷貝到SD(fat32分區(qū),通過USB用PC考入)卡中備用:
ext2.ko
mot_boot_mode

二、開始替換/data/app、/data/dalvik-cache和/data/app-private目錄

1、重要的內(nèi)核模塊ext2.ko:
在開頭的前提中我們提到,SD卡首先要被格式化好。這個網(wǎng)上有很多教程,就是SD被分為兩個分區(qū),一個vfat的,一個ext2的(ext2不要大于1.4G)。但是android的系統(tǒng)默認(rèn)并不支持ext2文件格式,所以,如果要把SD卡的ext2文件系統(tǒng)順利掛載到系統(tǒng)中,必須要給系統(tǒng)打補(bǔ)丁,ext2.ko就是解決這個問題的,它是一個內(nèi)核選項(xiàng)模塊,加載了這個模塊,系統(tǒng)將能識別ext2文件系統(tǒng)格式,這點(diǎn)很重要,不能忽略。
用R.E.管理器,將ext2.ko文件拷貝到/system/lib/modules中。
打開超級終端,在超級終端中打入命令(注意不能輸入錯誤,注意空格位置):
$$su ;分號(包含分號)后內(nèi)容不需要輸入,只是命令的解釋。$$和后面的#號都是狀態(tài)符,也不需要輸入。su,超級用戶,現(xiàn)在你是神了。
#insmod /system/lib/modules/ext2.ko ;加載內(nèi)核選項(xiàng)模塊ext2,讓系統(tǒng)能夠識別ext2文件系統(tǒng)格式

#lsmod ;驗(yàn)證ext2.ko是否被加載,如果被加載,可以看到ext2的加載信息

2、驗(yàn)證格式化過的SD卡文件系統(tǒng)是否正確:
打開超級終端,在超級終端中打入命令(注意不能輸入錯誤,注意空格位置):
#cd /dev/block/ ;進(jìn)入設(shè)備目錄(文件系統(tǒng)在linux中一般為塊設(shè)備)
#ls -l ;看看有哪些設(shè)備,一般會有/dev/block/mmcblk0p0
/dev/block/mmcblk0p1
/dev/block/mmcblk0p2
等,其中/dev/block/mmcblk0p1對應(yīng)mmc設(shè)備上的第一個分區(qū)
/dev/block/mmcblk0p2就是我們要的第二個分區(qū)ext2分區(qū)

#mkdir /system/sd ;在/system目錄下面創(chuàng)建一個子目錄sd,用于掛載ext2文件系統(tǒng)
#mount -t ext2 /dev/block/mmcblk0p2 /system/sd
;將ext2文件系統(tǒng)/dev/block/mmcblk0p2掛載到/system/sd上
#busybox df -h ;檢查文件系統(tǒng)是不是掛載成功,如果成功,會看到/system/sd文件系統(tǒng)掛載點(diǎn),注意核對一下容量應(yīng)該和SD卡上ext2分區(qū)的容量一致。
#cd /system/sd
#ls -la ;進(jìn)一步確認(rèn)文件系統(tǒng)是否成功,可以適當(dāng)做些文件拷貝工作

3、乾坤大挪移:
到現(xiàn)在,新的ext2系統(tǒng)已經(jīng)加載完畢,如果以上步驟有錯,下面的工作就不要繼續(xù),檢查一下SD卡的分區(qū)是不是正確。
如果前面的步驟無錯,繼續(xù)…
打開超級終端,在超級終端中打入命令(注意不能輸入錯誤,注意空格位置):
#cp -rp /data/app /system/sd ;將原本/data/app目錄全部拷貝到/system/sd下,完成后/system/app下會形成一個新目錄/system/sd/app,其中內(nèi)容和/data/app目錄完全一樣注意:這句和app2sd.rar包中的install.sh有些不同,加了一個p開關(guān)。linux系統(tǒng)的文件擁有者和讀寫權(quán)限管理比較嚴(yán),加了p開關(guān)的目的是把把文件的用戶屬性和讀寫屬性原封不動的挪移進(jìn)新目錄,因?yàn)楫?dāng)前操作者是root,而移到目錄的擁有者是system用戶。r開關(guān)是整個目錄結(jié)構(gòu)的拷貝
#cp -rp /data/dalvik-cache /system/sd ;同上,拷貝/data/dalvik-cache目錄
#cp -rp /data/app-private /system/sd ;同上,拷貝/data/app-private目錄

這是移花接木的步驟,就是把以前機(jī)器中用戶自裝的app和一些app過程信息搬到新的ext2文件系統(tǒng)下,以備文件系統(tǒng)的替換。
這時可以做一些必要的檢查,在超級終端中打入命令(注意不能輸入錯誤,注意空格位置):
#ls -l /system/sd/app ;核對拷貝完成情況
#ls -l /system/sd/dalvik-cache ;
#ls -l /system/sd/app-private ;

4、危險的替換:
到此為止,如果所有操作不是因?yàn)槊钶斎脲e誤的話,不會對系統(tǒng)有任何的危害。但是,接下來的工作,有可能會造成系統(tǒng)不舉等問題,需要非常小心,操作一步必須核對一步。

打開超級終端,在超級終端中打入命令(注意不能輸入錯誤,注意空格位置):
#mv /data/app /data/app1 ;這個命令是讓/data/app目錄改名,因?yàn)槲覀兘又獙?data/app目錄鏈接到/system/sd/app目錄
#su system ;這句話的意思是把自己變成system用戶,因?yàn)?data/app目錄的屬于system用戶而非root用戶,接下來一句ln指令將已作為system用戶發(fā)出
$ln -s /system/sd/app /data/app ;將/data/app作為一個link指向/system/sd/app目錄。這是linux這樣的類unix系統(tǒng)中最常用的形式,叫symoblic link,操作symoblic link等同操作實(shí)際目錄。在早期的一些linux系統(tǒng)中甚至可以通過ln命令騙過文件權(quán)限設(shè)置而越權(quán)執(zhí)行程序
$exit ;回到root用戶

#mv /data/dalvik-cache /data/dalvik-cache1
#su system ;
$ln -s /system/sd/dalvik-cache /data/dalvik-cache
;這兩步和上面的意思一樣
$exit ;回到root用戶

#mv /data/app-private /data/app-private1
#su system ;
$ln -s /system/sd/app-private /data/app-private
;意義同上
$exit ;回到root用戶

需要注意的是,在一個一個擊打命令的時候,系統(tǒng)可能會彈出一些報警,其原因是因?yàn)槟夸浺苿訒r一些服務(wù)類型的進(jìn)程找不到目標(biāo)目錄。不需要在意,這不會有太嚴(yán)重的影響,直管完成上面幾個操作。

操作完成后,還是用ls之類的命令去檢查完成的結(jié)果是否可靠。
事實(shí)上,這些替換還不算要命,因?yàn)樵?data/app中的大多數(shù)app都不是致命的系統(tǒng)應(yīng)用,都是用戶自己安裝的app。而接下來的一步去至關(guān)重要,千萬小心。

5、引導(dǎo)的修改:
這步操作如果失誤,可能會造成嚴(yán)重的后果。

以上所有的步驟都正確完成后,系統(tǒng)依然在掌控中,即便是上面的操作有些失誤,系統(tǒng)也不會有太嚴(yán)重的問題,哪怕是重啟后找不到/data/app等文件夾,也不會致命,可以通過超級終端等挽救(這點(diǎn)未經(jīng)證實(shí),最好也不要去求證,只是猜測。理論上/data/dalvik-cache操作失誤會有點(diǎn)危險,因此,盡量不要失誤)。

由于linux的insmod加載內(nèi)核選項(xiàng)模塊指令和mount文件系統(tǒng)掛載指令不是一勞永逸的,因此每次開機(jī)時都需要做這兩項(xiàng)重要的工作,insmod加載ext2.ko模塊和mount掛載SD的ext2分區(qū)。
打開超級終端,在超級終端中打入命令(注意不能輸入錯誤,注意空格位置):
#mv /system/bin/mot_boot_mode /system/bin/mot_boot_mode.bin
;這是一種偷梁換柱的方法,系統(tǒng)在每次引導(dǎo)時都會執(zhí)行mot_boot_mode這個文件,將它改名的目的是要用我們自己的同名文件來代替它,但是mot_boot_mode這個文件還是要保證它被以mot_boot_mode.bin文件名的形式在引導(dǎo)時被執(zhí)行。
#ls -l /system/bin/mot* ;這句命令是重要的確認(rèn),確認(rèn)這個文件被更名,如果確實(shí)被更名,ls后的顯示應(yīng)該不包含mot_boot_mode,而是顯示mot_boot_mode.bin文件名。
確定文件被更名后,用R.E.管理器把a(bǔ)pp2sd.rar包中解壓的文件mot_boot_mode拷貝到/system/bin/目錄下,再提醒要小心,如果前面更名工作沒有完成,拷貝動作將會覆蓋掉原來系統(tǒng)自帶的mot_boot_mode系統(tǒng)文件,這將鑄成大錯。
現(xiàn)在來看一下新的mot_boot_mode這個李鬼的腳本內(nèi)容:
#!/system/bin/sh
export PATH=/system/bin:$PATH

#run original script
mot_boot_mode.bin

#mount ext2
insmod /system/lib/modules/ext2.ko
mount -t ext2 /dev/block/mmcblk0p2 /system/sd

最上面設(shè)定環(huán)境變量;中間那句很重要,就是讓真李逵出來亮個相,所以,剛才那個條指令“mv /system/bin/mot_boot_mode /system/bin/mot_boot_mode.bin”中的“mot_boot_mode.bin”新文件名一定不能打錯,不然引導(dǎo)就會出問題;最后兩句我們前面手工打過,放在這里的意思就是讓系統(tǒng)每次啟動引導(dǎo)是都做一次。

最后一點(diǎn)點(diǎn)重要的收尾工作,同樣很重要?。?!在超級終端中打入命令(注意不能輸入錯誤,注意空格位置):
#chmod 755 /system/bin/mot_boot_mode ;這句話是設(shè)置新mot_boot_mode的執(zhí)行權(quán)限,要不然,如果沒有X屬性,系統(tǒng)是不會去執(zhí)行它,同樣會引起引導(dǎo)失敗。

現(xiàn)在可以執(zhí)行重啟,關(guān)機(jī)重啟,或者在超級終端里打入命令reboot重啟。app2sd就此完成。

三、一些考慮:

替換mot_boot_mode問題:
這步比較有風(fēng)險,鑒于在系統(tǒng)的根“/”中有個init.rc文件,是否可以利用。
在init.rc文件的“on boot”開關(guān)下面加入
insmod /system/lib/modules/ext2.ko
mount ext2 /dev/block/mmcblk0p2 /system/sd
init.rc中的語句是init來解析的,和標(biāo)準(zhǔn)linux指令有些差異,可以參考init.rc文檔中指令的用法。
這是否有效,是否比替換mot_boot_mode安全,效果如何,可以進(jìn)一步測試。

使用一天后,只有一個問題其他均正常。問題是:程序安裝app中,安裝過的程序不再記憶,不知道原因,目前用專用卸載工具彌補(bǔ)。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Android擴(kuò)容總動員-將安裝軟件從手機(jī)內(nèi)存轉(zhuǎn)移到存儲卡
華為官方APP固件解包工具
三星i9300內(nèi)置SD卡重分區(qū)教程 可增加1.5G內(nèi)存
教你怎么把程序裝在SD 卡里 開啟App2SD方法 - Sprint EVO 4G(A92...
了解App2sd+與App2sd的區(qū)別,讓官方ROM支持a2sd+ - Acer Liqu...
I579 LINK2SD 詳細(xì)教程 手機(jī)內(nèi)存不夠用的不要錯過 從此無視APP2SD
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服