G1 app2sd 完全教程

声明 1:你所需要的软件在这里可以下载的到!
声明 2.app2sd 虽然可以省却手机内存,但是也有许多不便的地方!操作后 SDcard 就是机子的一部分,不能随便摘取.我用的 4G 的卡,在机子挂在后存储有问题!不知道其他卡如何.所以在存储文件和音乐的时候还是需要用到读卡器,而这个时候我必须选择关机!直接卸载 SDcard 会造成机子程序出错!而不得不从新执行一遍 app2sd 的过程!并且执行过后也会存在一些不可知的问题!如果对稳定性比较看重的人这里可以飘过了! 声明 3.我的 sdcard 已经在手机内通过!懒得再刷,所以没有用我的 card 抓图!本教程图片多为网上现成图片来完成!而图片不是一个地方抓取的!所以图片上的容量会有差距.但是刷机过程没有错

从新格盘,正好用自己的图!顺便说一下,ubuntu 下的默认抓图真恶心!每抓一张都要从新启动一次程序!

所需要的准备的工作:
1.SDcard(必须)
2.分区软件(必须,windows 下可以使用 Acronis Disk Director Suite,支持 vista.linux 下可以直接利用终端分区!)
3.Android SDK(非必须,可以再网上下载 Terminal Emulator.apk,安装后在手机上输入 adb 下的指令完成操作!)
首先我们要将 SDcard 分区,分成 fat32 和 ext2,至于 ext3 是否可行我没有测试过,有兴趣的可以试试并且留言告诉我测试报告!

我选择的是在 ubuntu 的终端执行,这样操作比较靠谱.而在 windows 下的分区软件不是很稳定!会造成诸多不可见的错误!

windows 下的分区软件有 Acronis Disk Director Suite 以及 PartitionManager,至于分区魔术师可以略过,因为它不支持分区 SDcard.Acronis Disk Director Suite 软件分区可以移步到此查看!

以 USB 内存卡方式插上电脑,或者用读卡器插上电脑
像我的 ubuntu,它会自动挂载你的卡。 把东西备份好,然后卸载。一定要卸载,不然无法分区 启动 ubuntu 或者您的 linux 系统,在终端内输入如下代码:

dmesg //查看所连接的设备!
可以看到 sdb 或者 sdc 之类的设备名称!假设我以下操作都为 sdc 设备!
sudo fdisk /dev/sdc //这里需要说明,如果 linux 下非 root,必须要输入 sudo 来取得 root 权限进行操作.以下类同!
p 是显示当前分区
n 是创建
d 是删除
w 是应用你的操作
doo@ubuntu:~# sudo fdisk /dev/sdc
Command (m for help): d < ==删除当前分区
Command (m for help): p <==显示一下,确定已删除
Disk /dev/sdc: 3965 MB, 3965714432 bytes
122 heads, 62 sectors/track, 1024 cylinders
Units = cylinders of 7564 * 512 = 3872768 bytes
Disk identifier: 0x9dfd42a5

Device Boot Start End Blocks Id System

Command (m for help):

Command (m for help): m < ==查看帮助
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): n <==新建分区,选择主分区
Command action
e extended
p primary partition (1-4)
p Partition number (1-4): 1 <==指定该主分区为 1 号
First cylinder (1-1024, default 1): <==敲回车,直接使用 SD 卡的最开头
Using default value 1
Last cylinder or +cylinders or +sizeK(K,M,G) (1-1024, default 1024): +3300M <==填入分区的大小
Command (m for help): n <==新建分区,选择扩展分区(所有逻辑分区加起来就是扩展分区)

Command action
e extended
p primary partition (1-4)
p Partition number (1-4): 2 <==扩展分区的序号是 2
First cylinder (895-1024, default 895): <==敲回车,直接接着剩余空间的最开头
Using default value 895
Last cylinder or +cylinders or +sizeK(K,M,G) (895-1024, default 1024): <==敲回车,用默认的,使用全部剩余空间
Using default value 1024
Command (m for help):

Command (m for help):p

Disk /dev/sdc: 3965 MB, 3965714432 bytes
122 heads, 62 sectors/track, 1024 cylinders
Units = cylinders of 7564 * 512 = 3872768 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 894 733792+ 83 Linux
/dev/sdc2 729 1024 272128+ 83 Linux 创建好两个分区后, 我们还需要用命令 t 修改分区卷标, 选择分区 1 改卷标为 c 命令为

Command (m for help):t t < ==修改卷标
partition number (1-4): 1 <==输入 1 来制定第一个分区.
Hex code (type L to List codes): c <==输入 C 来制定卷标
Changed system type of partition 1 to c (W95 FAT32 (LBA))

Command (m for help): w <==将缓冲写入 SD 卡,应用你的操作

The partition table has been altered!
Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.X
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
doo@ubuntu:~#

doo@ubuntu:~# sudo ls /dev/sdc* < ==查看分区情况
/dev/sdc /dev/sdc1 /dev/sdc2
doo@ubuntu:~#sudo mkfs.vfat /dev/sdc1 <==格式化第一个主分区。
mkfs.vfat 3.0.1 (23 Nov 2008)
doo@ubuntu:~# sudo mkfs.ext2 /dev/sdc2 <==格式化第二个分区
mke2fs 1.41.4 (27-Jan-2009)
warning: 139 blocks unused

Filesystem laber=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
123360 inodes, 491521 blocks
24583 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesyetem blocks=67633152
68 block groups
8192 blocks per group, 8192 fragments per group
2856 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 38 mounts or 180 days.whichever comes first. Use tune2fs -c or -i to override.
doo@ubuntu:-$ 分区完毕后 ubuntu 会自动挂在两个盘符.表示成功!

然后需要手机必须为 app2sd 版本的 rom,在 windows 命令提示符下输入命令查看:
以下步骤必须安装 android sdk.(其实一下步骤不一定需要在 windows cmd 下进行,在网上下载一个 android 的终端 Terminal Emulator.apk,然后启动此程序在手机内输入以下指令是一样的!只是在 sdcard 的系统盘下建立 app 文件夹并挂载到 android rom 上! )

C:and Settings>cd c:< ==cd 到 sdk adb.exe
C:>adb devices < ==查看连接的硬件和设备
List of devices attached
000000000000 device <==分区过硬盘以后连接会显示 000000000000 的硬件号

C:>adb shell
# su < ==如果你还没有取得 root 权限,那么这一步通不过.
su
# ls /system <==查看一下 system 目录下的文件夹
ls /system
lib
framework
media
fonts
etc
customize
build.prop
usr
bin
xbin
app
sd
lost+found

busybox df -h < ==查看系统盘情况!如果分区成功,那么会在 android 的系统下显示分区.如下我的 385.8M 的分区在 android 的系统内!再往下是 sdcard 的系统!如果没有那表示分区失败.当然还有一种可能就是你的手机不是 app2sd rom

busybox df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 48.3M 0 48.3M 0% /dev
tmpfs 4.0M 12.0k 4.0M 0% /sqlite_stmt_journals
/dev/block/mtdblock3 67.5M 67.5M 0 100% /system
/dev/block/mtdblock5 74.8M 30.4M 44.3M 41% /data
/dev/block/mtdblock4 67.5M 1.2M 66.3M 2% /cache
/dev/block/mmcblk0p2 385.8M 2.0k 366.5M 0% /system/sd < ==由于在 ubuntu 下分区后手机内读取 sdcard 出错,所以后便又分了一次!但是没有抓图,所以容量上和上图有差距.再者本身 linux 和 windows 读取 SDcard 的容量上就有不同!
/dev/block//vold/179:1
3.3G 4.0k 3.3G 0% /sdcard
# mkdir /system/sd/app <==建立 sdcard 分区上的 app 文件夹!如果以前 sdcard 曾做过 app2sd,那么这个文件夹是存在的!会有命令符提示文件夹存在!
mkdir /system/sd/app
# cd /data
cd /data
# cp -a app /system/sd/app
cp -a app /system/sd/app
# rm -r app
rm -r app
# ln -s /system/sd/app /data/app
ln -s /system/sd/app /data/app
# reboot
reboot
手机自动重启后就 OK 了.放心安装你所想要的 apk 程序吧! 顺便说一句:ubuntu 的 9.04 快要放出正式版了!欢迎大家下载试用.

G1 app2sd 完全教程

https://hivan.me/g1-app2sd/

作者

Hivan Du

发布于

2021-08-31

更新于

2024-01-16

许可协议

评论