Android App2SD+

本人用的MIUI ROM,机型N1,经过不泄的努力,终于把我的8G卡分好区做成App2SD+,现在正深深的插在N1里,享受着App2SD+带来的极大快感。

可能很多人都会有这样的误解,App2SD不就是把应用程序安装到卡上吗?这个用豌豆荚都可以实现强制安装应用到SD卡上!事实上,我之前也是这么想的,直到看到了这篇帖子:http://www.miui.com/viewthread.php?tid=132

在此,我用我的理解来解释一下这个概念:
本文下面提到的App2SD和App2SD+实际上是App2Ext,即把存储卡分出一个分区给Android使用,让存储卡和Android系统紧密结合在一起。与Android 2.0以上版本自带的App2SD不同的是,后者只是把应用程序安装到存储卡的.android_source文件夹中,应用程序的数据、缓存都还在手机内部存储里。那么App2SD+到底有什么好处,相信看过上面提到的贴子的人都明白了。

一、为什么要App2SD+
欲做App2SD+,先了解下App2SD+的相关知识,请看我上面提到的贴子。

二、为你的存储卡分区
有两种方法可以实现:

方法1:利用PC上的分区工具给存储卡分区!
(建议先尝试下文的方法2,但你有必要看完方法1里提到的分区划分。)
常见的分区工具如:Acronis Disk Director、DiskGenius都可以实现把存储卡同时分出Ext格式和FAT格式。
(PS.我用DiskGenius分区时只能分出Ext2格式,而Ext3格式更适合Android,特别是MIUI貌似只支持Ext3。)

将存储卡分成3个区,第一个区是正常的手机存储空间:FAT32,第二个区是App2SD+用到的分区:EXT3,第三个区是Android系统用到的Linux交换区。

附上别人写的分区教程:
http://www.handsky.cn/thread-153779-1-1.html
(PS.注意不要按教程里一样分EXT2格式,要分EXT3格式!也不一定要按里面的步骤来,比如删除存储卡空间,直接在Acronis Disk Director里删除空间后再分区就好!切记以上两点!PC上给存储卡分区的教程有很多,如此文不给力,请自行Google。

方法2:用Android系统中的Recovery来分区!
此方法最简单,无需折腾,由于不同机型的Recovery、甚至同一机型不同Recovery版本的操作菜单都有所差别,但大都提供了Partitions Menu功能选项,进入该菜单,选择Partitions sdcard,即可按提示进行分区。

具体过程:
1)以N1为例,关机状态下按住音量减键点一下开机键,不要放开音量减键直至进入FASTBOOT界面,用滚轮选择Recovery,按电源键确定进入。
2)手机重启到Recovery,选择Partitions Menu进入,选择Partitions sdcard进入,选择Partitions SD进入。
3)问你确定要分区吗?按滚轮确定,然后跳出Swap-size和Ext3-size选项,用滚轮上下调整空间大小,最后确定开始分区,没分配的空间就是FAT32存储空间。
4)耐心的等待你的屏幕上正在跳...............,跳多久视情况而定,一般5分钟以内就能分好,如果一直在跳........10分钟以上,那么恭喜你,你和我一样,遇到了神秘问题,放弃此方法!我曾经把手机插着电源,从头晚到第二天早晨,屏幕还在跳............,没有半点累的意思,估计和卡的质量等因素有关。

三、在Android系统里开启App2SD+
首先我要说明的是:App2SD+和App2SD只有那么一点微小的区别,App2SD+就是把应用程序缓存和应用程序数据都存储到了Ext3分区里,而App2SD只是把应用程序安装到了Ext3分区里,而应用程序的数据和缓存都还是存储在手机内部存储里,这一点和文章开头提到的Android 2.0以上版本自带的App2SD有点像。具体你是要App2SD还是要App2SD+,看你的选择,开始吧:

首先保证你的手机里有超级终端,进入开始输入命令:

# su
回车,如果提示授权,请授权!
# a2sd reinstall
回车,手机自动重启,这一步是重新加载a2sd功能,并且会把你已经安装过的软件移到Ext分区里。

OK,到现在,App2SD已经成功了,如果要App2SD+,继续往下:

重启后继续进入超级终端模拟器运行以下命令:
# su
回车
# a2sd zipalign
回车
# a2sd cachesd
回车,手机自动重启,App2SD+就算成功了,如果你的手机还未安装过任何应用程序,安装几个先。

现在,打开Root Explore(如果你手机上还没有,就安装个先),看手机根目录是否已经有了个“sd-ext”文件夹,进入这个文件夹,看有没有app、app-private、dalvik-cache这样的文件夹,如果有,恭喜你,你已经App2SD+了。


----------------------------------
如果你的存储卡已经分出EXT分区,但不知道如何开启A2SD+的,请使用该工具:Plus工具箱CM专用版,基于CM的系统都可以用,比如MIUI。


----------------------------------
看了些回复,把一些常规提问做一下回复:
1、输入命令# a2sd reinstall 时不起作用,不会重启。
可能性1:分区不正确,无法被系统识别EXT分区;
可能性2:你没有输入#su,来获得最高权限;
可能性3:系统不支持A2SD+,这一可能仅适用于非MIUI系统,或非基于CM的系统。
2、如何知道已经正确分区?
答:看下你的EXT分区是否被系统识别了?MIUI参照:设置》系统》SD卡》-A2SD+那里有没有总容量和可用空间。(MIUI会自动识别正确的EXT分区,并开启A2SD功能,但不会默认开启A2SD+,即应用程序缓存、应用程序数据还在手机内部存储里。)如果已经显示总容量,说明分区正确,只需要执行上文的第三步,开启A2SD+即可。(当然,你也可以选择使用附件里的工具。)
3、我已开启ap2sd+,重新刷了ROM后,ap2sd+还保留吗?是不是还得重新做?重刷ROM后,只要存储卡分区没有变化,那么A2SD功能对于MIUI来说是还在的,你只需要执行上文第三步的命令即可开启A2SD+

-----------------------
使用两个月后经验补充:

1、如果在使用过程中,A2SD+出现了什么未知问题导致失效(比如EXT分区中的程序打不开),建议试试:

# a2sd repair
这是一个修复命令,有益无害。

2、上文提供的命令只是把程序缓存(chache)移到了EXT分区里,如果你还想把程序数据(data)也移到EXT分区,执行:

# a2sd datasd

(后悔data移入EXT的命令:#a2sd nodata)

3、不想用A2SD了?

执行:#a2sd  remove


以上转自:http://www.miui.com/thread-55691-1-1.html



首先感谢论坛中刷机大侠们的教程给了不少帮助!!
本人也是购买G7的新手,本来手机已经无痛Root了,晚上手痒就把完全Root,看了不用刻盘也能S-OFF!XP+VMWARE+AlphaRev1.8,0.93.0001测试S-OFF成功~
后来发现手机的Recovery版本变了,是2.5.1.8的,论坛中很多刷机教程都不是针对该版本的,个人经过多次刷机后整理了一下针对该版本的刷机步骤。

1. 首先,在刷机前线确认G7是否已经S-OFF。关闭手机,按住手机的【往返键】或【音量-】键不放,再按手机的【电源键】,如果你是按【往返键】的将进入FASTBOOT界面;按的是【音量-】键的将进入的是HBOOT界面。前者再按一次【电源键】后就进入到了HBOOT界面;后者将直接进入到HBOOT界面。在这个界面中,你就可以看到G7是否已经S-OFF了。还有出厂日期、HBOOT版本、RADIO版本等等信息。
2. 使用【音量+】或【音量-】键可以选择菜单项目。我们要刷机或要进行分区当然要选择第二项的Recovery了。选择好后,按手机的【电源键】后就进入到Recovery界面了。针对2.5.1.8的Recovery有8个选项菜单,每个主菜单中都有下一级菜单。2.5.1.8的Recovery对应的菜单如下:
版本Recovery 2.5.1.8的全部菜单中英文注释:
-reboot system now  重启系统
-apply sdcard:update.zip 使用SD卡根目录的update.zip更新系统
-wipe data/factory reset 清空data分区并恢复出厂设置
-wipe cache partition 清空cache分区
-install zip from sdcard 从SDcard选择文件更新系统
--apply sdcard:update.zip 使用SD卡根目录的update.zip 更新系统
--choose zip from sdcard 从SD卡选择zip格式升级包
--toggle signature verification 切换签名验证
--toggle script asserts 切换升级脚本检查 
-backup and restore 备份和恢复
--Backup 备份
--Restore 恢复
--Advanced Restore 高级恢复
-mounts and storage 挂载和存储
--mount /system 挂载/system分区(系统分区)
--mount /data 挂载/data分区(数据分区)
--mount /cache 挂载/cache分区(缓存分区)
--mount /sd-ext 挂载/sd-ext分区(A2SD分区)
--format boot   格式化内核分区
--format system  格式化系统分区
--format data   格式化数据分区
--format cache  格式化缓存分区
--format sdcard  格式化存储卡
--format sd-ext  格式化内存卡SD
--mount USB storage  挂载SD卡为U盘模式
--—Unmount—  (卸载)
-advanced 高级
--Reboot Recovery 重启Recovery 
--Wipe Dalvik Cache 清空Dalvik缓存
--Wipe Battery Stats 清空电池状态
--Report Error 报告错误
--Key Test 键位测试
--Partition SD Card 对SD卡分区
--Fix Permissions 修复权限
3. 分区操作
    在执行分区和刷机前,备份你的手机数据,这个分重要。
   1). 使用【音量键】或手机【光学轨迹球】来移动光标来选择advanced( 高级)项后,按下【光学轨迹球】来确定进入下一级菜单,再选择Partition SD Card (对SD卡分区),按下【光学轨迹球】确定。
   2). 进入到设置Ext Size窗口,这里输入你要的Eet分区大小(这里要说明一下,每个版本的rom要求不同的Eet分区大小,一般在1G一下)。移动光标后,再按【光学轨迹球】来确定。
   3). Ext分区后,按了【光学轨迹球】会自动进入到下一个Swap Size窗口,这里就是设置你的Swap分区大小的界面了,大小一般在32MB~512MB之间就可以了,同样选择大小后按【光学轨迹球】来确定。确认后,看到:Partitioning SD Card... please wait...表示正在分区,一直看的Donel就已经分区完成!
   4). 上面的Eet分区、Swap分区都确定后,SD卡剩下的空间系统会自动分配给FAT格式的分区,不需要理会它。
   5). 按了【光学轨迹球】后,系统就开始自动分区并格式化分区了,这时你不需要任何操作,耐心等待手机完成操作。当手机提示完成分区操作后,你只要按一下【电源键】,返回Recovery主菜单后,选择reboot system now  (重启系统),再按【光学轨迹球】来确定,手机重启后就进入到桌面了,分区操作就完成了。 
4. 把新的Rom复制到SD卡
   1). 分区完成后,按返回,使用手机【光学轨迹球】进入mounts and storage 挂载和存储,按下【光学轨迹球】进入mount USB storage  挂载SD卡为U盘模式,出现—Unmount—(卸载) ,这时不要动手机,电脑会提示:可移动磁盘 ,最后把你要刷的Rom复制进去SD卡,按下2次返回即可!
5. 刷新rom
   1). 首先,将你要准备安装的rom选择好后放到SD卡的FAT分区中。(刷机用的rom下载后的文件不要解压)
   2). 关手机后,操作进入Recovery界面与分区的操作相同。
   3).选择 wipe data/factory reset( 清空data分区并恢复出厂设置)和wipe cache partition (清空cache分区)这2个选项来清空手机的数据(很重要,必须要操作)。当然操作是完成一项后再选择另一项,同样是按下【光学轨迹球】来确定操作。
   4). 这2项完成后,选择install zip from sdcard( 从SDcard选择文件更新系统),按【光学轨迹球】后进入下一级菜单,选择choose zip from sdcard (从SD卡选择zip格式升级包),按【光学轨迹球】后进入到SD根目录后,选择你已经在电脑上操作过的存在SD卡上的rom文件(你要记得你的rom文件名啊),按下【光学轨迹球】来确定操作。
   5). 这是就不需要你操作了,你只要仔细观察手机中的安装进度条就可以了,等待几分钟后,手机提示完成安装后自动重启手机在等待一会就可以看到最新的成果了,哈哈!!~~~一切都完成了~~OK!!!


转自:http://bbs.dospy.com/thread-10791912-1-350-1.html

posted @ 2011-12-23 14:27  还是你最好  阅读(1638)  评论(0编辑  收藏  举报