sh/bash/dash/ksh/zsh等Shell脚本
-
hceasy
- 论坛版主
- 帖子: 6009
- 注册时间: 2010-04-17 18:51
- 系统: W10
#1
帖子
由 hceasy » 2012-04-02 15:35
APP2SD 里边的SH。
批量执行出错。只好看着一步一步执行了。
代码: 全选
#!/sbin/sh
if [ -e /dev/block/mmcblk0p2 ]; /** 检查了什么 ?**/
then
if [ ! -d /system/sd ]; /***如果 system/sd 不存在 ?**/
then
mkdir /system/sd /***创建 system/sd***/
chown system.system /system/sd /**更改所有者 ??*///
chmod 771 /system/sd /**更改权限 **/
echo "Created /system/sd" /** 提示创建完毕** /
fi;
busybox mount -t auto /dev/block/mmcblk0p2 /system/sd /**用busybox 中的挂载命令挂载?????**/
chown system.system /system/sd 更改所有者
chmod 771 /system/sd 更改权限
for i in app app-private dalvik-cache; 在 app app-pribate。。。 中执行下面的命令
do
if [ ! -d /system/sd/$i ]; 检查 ..... 检查这个目录中的$i ??? 什么东西 ?? 到FI那里貌似是照着 上边的几个文件夹创建文件什么的。。。
then
mkdir /system/sd/$i
echo "Created /system/sd/$1"
fi
chown system.system /system/sd/$i; 看来 Si 确实是个变量 估计是上边三个文件夹里的子文件。。。
chmod 771 /system/sd/$i 更改这些文件的权限
if [ -d /data/$i ] && [ ! -h /data/$i ]; 这个 。。。。对比么 ????
then
busybox cp -a /data/$i/* /system/sd/$i/ 用busy那个工具执行CP 命令 。。。。 安卓自己不带CP。。
busybox rm -f /data/$i/* 删除老的
echo "Moving /data/$1 to /system/sd/$1" 提示。
fi; 循环结束了
done;
for i in app app-private;
do
if [ -d /data/$i ] && [ ! -h /data/$i ]; 又是对比。。
then
busybox rm -rf /data/$i 删除了。
echo "Created /data/$1 link"提示。
fi;
busybox ln -s /system/sd/$i /data/$i 把DATA下的那些链接到 SD文件里。 (APP2EXT中最主要的。。。 要不手机内存没装几个就满了。。)
done;
busybox mount -o bind /system/sd/dalvik-cache /data/dalvik-cache; 这个挂载了什么。。。。
chown system.system /data/dalvik-cache; 改所有者
chmod 771 /data/dalvik-cache; 改权限
busybox cp /system/xbin/install-recovery.sh /system/etc/ 复制粘贴
chmod 0755 /system/etc/install-recovery.sh 改权限。。
tune2fs -j /dev/block/mmcblk0p2 验证分区2的格式。。。。 (晕,,这个为啥不写到开头。貌似也只是验证下。。。没多大意义)
echo "App2SD Activated" 提示
reboot 重启了。。
exit 0 退出
else
echo -n "You have created EXT partition then format it! .."
echo
echo -n "Unmounting all partitions ..."
busybox umount -ddl /sdcard/ 2>&1 >>"$LOGFILE"
busybox umount -f /sdcard > /dev/null 2>&1 >>"$LOGFILE"
busybox umount -f "/dev/block/mmcblk0p1" > /dev/null 2>&1 >>"$LOGFILE"
busybox umount -f "/dev/block/mmcblk0p2" > /dev/null 2>&1 >>"$LOGFILE"
echo "Done"
echo
echo -n "Removing the partitions ..."
parted /dev/block/mmcblk0 rm 1
parted /dev/block/mmcblk0 rm 2
echo "Done"
echo
echo -n "Creating all the partitions ..."
echo "FAT32"
parted /dev/block/mmcblk0 mkpartfs primary fat32 0 1466
echo "EXT2"
parted /dev/block/mmcblk0 mkpartfs primary ext2 1466 1978
tune2fs -j /dev/block/mmcblk0p2
echo
echo "All partition created"
echo
sh /system/xbin/app2sd.sh
fi
上次由
hceasy 在 2012-04-02 15:58,总共编辑 2 次。
-
枫叶饭团
- 帖子: 14683
- 注册时间: 2010-06-16 1:05
- 系统: Mac OS X
- 来自: Tencent
-
联系:
#2
帖子
由 枫叶饭团 » 2012-04-02 15:37
安猪手机里的sh?看求不懂
-
ljj_jjl2008
- 论坛版主
- 帖子: 14256
- 注册时间: 2007-09-16 8:29
#3
帖子
由 ljj_jjl2008 » 2012-04-02 15:40
刚研究了2天shell,主要是文件操作和字符串处理部分,正在头大状态中。
我水平不够,无能为力了。
-
hceasy
- 论坛版主
- 帖子: 6009
- 注册时间: 2010-04-17 18:51
- 系统: W10
#4
帖子
由 hceasy » 2012-04-02 16:09
算了 直接判断去掉。。。
因为第一个判断我就过不去,但是手机里边确实加载了SD卡的第二分区。
-
xjpvictor
- 帖子: 2837
- 注册时间: 2007-08-22 15:55
- 系统: Archlinux
- 来自: 新加坡
-
联系:
#5
帖子
由 xjpvictor » 2012-04-02 18:33
我就半吊子水平,抛砖引玉一下。。
代码: 全选
#!/sbin/sh
if [ -e /dev/block/mmcblk0p2 ]; /dev/block/mmcblk0p2文件存在为真
then
if [ ! -d /system/sd ]; /system/sd是目录为真
then
mkdir /system/sd
chown system.system /system/sd 更改所有者为system,组为system
chmod 771 /system/sd /**更改权限 **/
echo "Created /system/sd" /** 提示创建完毕** /
fi;
busybox mount -t auto /dev/block/mmcblk0p2 /system/sd /**不懂busybox,但看着像是挂载**/
chown system.system /system/sd 更改所有者
chmod 771 /system/sd 更改权限
for i in app app-private dalvik-cache; i依次赋值为app app-private dalvik-cache
do
if [ ! -d /system/sd/$i ]; 目录不存在为真
then
mkdir /system/sd/$i
echo "Created /system/sd/$1"
fi
chown system.system /system/sd/$i; 看来 Si 确实是个变量 估计是上边三个文件夹里的子文件。。。
chmod 771 /system/sd/$i 更改这些文件的权限
if [ -d /data/$i ] && [ ! -h /data/$i ]; /data/$i是目录,并且不是链接
then
busybox cp -a /data/$i/* /system/sd/$i/ 用busy那个工具执行CP 命令 。。。。 安卓自己不带CP。。
busybox rm -f /data/$i/* 删除老的
echo "Moving /data/$1 to /system/sd/$1" 提示。
fi; 循环结束了
done;
for i in app app-private;
do
if [ -d /data/$i ] && [ ! -h /data/$i ]; 同上
then
busybox rm -rf /data/$i 删除了。
echo "Created /data/$1 link"提示。
fi;
busybox ln -s /system/sd/$i /data/$i 把DATA下的那些链接到 SD文件里。 (APP2EXT中最主要的。。。 要不手机内存没装几个就满了。。)
done;
busybox mount -o bind /system/sd/dalvik-cache /data/dalvik-cache; 这个挂载了什么。。。。
chown system.system /data/dalvik-cache; 改所有者
chmod 771 /data/dalvik-cache; 改权限
busybox cp /system/xbin/install-recovery.sh /system/etc/ 复制粘贴
chmod 0755 /system/etc/install-recovery.sh 改权限。。
tune2fs -j /dev/block/mmcblk0p2 验证分区2的格式。。。。 (晕,,这个为啥不写到开头。貌似也只是验证下。。。没多大意义)
echo "App2SD Activated" 提示
reboot 重启了。。
exit 0 退出
else
echo -n "You have created EXT partition then format it! .."
echo
echo -n "Unmounting all partitions ..."
busybox umount -ddl /sdcard/ 2>&1 >>"$LOGFILE"
busybox umount -f /sdcard > /dev/null 2>&1 >>"$LOGFILE"
busybox umount -f "/dev/block/mmcblk0p1" > /dev/null 2>&1 >>"$LOGFILE"
busybox umount -f "/dev/block/mmcblk0p2" > /dev/null 2>&1 >>"$LOGFILE"
echo "Done"
echo
echo -n "Removing the partitions ..."
parted /dev/block/mmcblk0 rm 1
parted /dev/block/mmcblk0 rm 2
echo "Done"
echo
echo -n "Creating all the partitions ..."
echo "FAT32"
parted /dev/block/mmcblk0 mkpartfs primary fat32 0 1466
echo "EXT2"
parted /dev/block/mmcblk0 mkpartfs primary ext2 1466 1978
tune2fs -j /dev/block/mmcblk0p2
echo
echo "All partition created"
echo
sh /system/xbin/app2sd.sh
fi
Entschuldigung. Ich habe keine ahnung.
Secure with PGP: gpg --recv-keys 0x68b6e3d8
Fingerprint: 5556 517C F52F E402 DDF5 5400 6D30 F13E 68B6 E3D8
Towards A Sustainable Earth: Print Only When Necessary
-
hceasy
- 论坛版主
- 帖子: 6009
- 注册时间: 2010-04-17 18:51
- 系统: W10
#6
帖子
由 hceasy » 2012-04-02 18:52
多谢LS了。
这个里面没有修改过类似 arch下的rc的步骤,每次手机关机再开 那个mmc 2分区怎么挂载啊。。。。
-
xjpvictor
- 帖子: 2837
- 注册时间: 2007-08-22 15:55
- 系统: Archlinux
- 来自: 新加坡
-
联系:
#7
帖子
由 xjpvictor » 2012-04-02 19:05
hceasy 写了:多谢LS了。
这个里面没有修改过类似 arch下的rc的步骤,每次手机关机再开 那个mmc 2分区怎么挂载啊。。。。
貌似tune2fs -j /dev/block/mmcblk0p2是把这个分区加到filesystem里,下次开机应该就会自动挂载了
Entschuldigung. Ich habe keine ahnung.
Secure with PGP: gpg --recv-keys 0x68b6e3d8
Fingerprint: 5556 517C F52F E402 DDF5 5400 6D30 F13E 68B6 E3D8
Towards A Sustainable Earth: Print Only When Necessary
-
hceasy
- 论坛版主
- 帖子: 6009
- 注册时间: 2010-04-17 18:51
- 系统: W10
#8
帖子
由 hceasy » 2012-04-02 19:32
再次过来感谢楼上
把命令分解了执行 终于在我的手机上开启了APP2EXT。。
成为第一个吃螃蟹的人。。
-
枫叶饭团
- 帖子: 14683
- 注册时间: 2010-06-16 1:05
- 系统: Mac OS X
- 来自: Tencent
-
联系:
#9
帖子
由 枫叶饭团 » 2012-04-02 19:34
APP2EXT,直接把sd卡格成ext就行了嘛
-
hceasy
- 论坛版主
- 帖子: 6009
- 注册时间: 2010-04-17 18:51
- 系统: W10
#10
帖子
由 hceasy » 2012-04-02 19:47
枫叶饭团 写了:APP2EXT,直接把sd卡格成ext就行了嘛
因手机型号而异,比如我这个就量身编译了一个模块儿。
XT319 MOTO 小众手机 资料少之又少。。。。
-
xjpvictor
- 帖子: 2837
- 注册时间: 2007-08-22 15:55
- 系统: Archlinux
- 来自: 新加坡
-
联系:
#11
帖子
由 xjpvictor » 2012-04-02 19:58
哭熊也是用的moto啊。。

Entschuldigung. Ich habe keine ahnung.
Secure with PGP: gpg --recv-keys 0x68b6e3d8
Fingerprint: 5556 517C F52F E402 DDF5 5400 6D30 F13E 68B6 E3D8
Towards A Sustainable Earth: Print Only When Necessary
-
hceasy
- 论坛版主
- 帖子: 6009
- 注册时间: 2010-04-17 18:51
- 系统: W10
#12
帖子
由 hceasy » 2012-04-02 21:06
MOTO的硬件皮实。
-
YeLee
- 论坛版主
- 帖子: 26406
- 注册时间: 2008-08-13 8:48
- 系统: Fundu i64
- 来自: 东海硇州,一双管钥。
-
联系:
#13
帖子
由 YeLee » 2012-04-02 21:09
我这边busybox居然要root……