分页: 1 / 1

不懂SHELL 帮忙加注释

发表于 : 2012-04-02 15:35
hceasy
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

Re: 不懂SHELL 帮忙加注释

发表于 : 2012-04-02 15:37
枫叶饭团
安猪手机里的sh?看求不懂

Re: 不懂SHELL 帮忙加注释

发表于 : 2012-04-02 15:40
ljj_jjl2008
刚研究了2天shell,主要是文件操作和字符串处理部分,正在头大状态中。
我水平不够,无能为力了。

Re: 不懂SHELL 帮忙加注释

发表于 : 2012-04-02 16:09
hceasy
算了 直接判断去掉。。。
因为第一个判断我就过不去,但是手机里边确实加载了SD卡的第二分区。

Re: 不懂SHELL 帮忙加注释

发表于 : 2012-04-02 18:33
xjpvictor
我就半吊子水平,抛砖引玉一下。。

代码: 全选

#!/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

Re: 不懂SHELL 帮忙加注释

发表于 : 2012-04-02 18:52
hceasy
多谢LS了。
这个里面没有修改过类似 arch下的rc的步骤,每次手机关机再开 那个mmc 2分区怎么挂载啊。。。。

Re: 不懂SHELL 帮忙加注释

发表于 : 2012-04-02 19:05
xjpvictor
hceasy 写了:多谢LS了。
这个里面没有修改过类似 arch下的rc的步骤,每次手机关机再开 那个mmc 2分区怎么挂载啊。。。。
貌似tune2fs -j /dev/block/mmcblk0p2是把这个分区加到filesystem里,下次开机应该就会自动挂载了

Re: 不懂SHELL 帮忙加注释

发表于 : 2012-04-02 19:32
hceasy
再次过来感谢楼上
把命令分解了执行 终于在我的手机上开启了APP2EXT。。
成为第一个吃螃蟹的人。。

Re: 不懂SHELL 帮忙加注释

发表于 : 2012-04-02 19:34
枫叶饭团
APP2EXT,直接把sd卡格成ext就行了嘛

Re: 不懂SHELL 帮忙加注释

发表于 : 2012-04-02 19:47
hceasy
枫叶饭团 写了:APP2EXT,直接把sd卡格成ext就行了嘛
因手机型号而异,比如我这个就量身编译了一个模块儿。
XT319 MOTO 小众手机 资料少之又少。。。。

Re: 不懂SHELL 帮忙加注释

发表于 : 2012-04-02 19:58
xjpvictor
哭熊也是用的moto啊。。 :em51

Re: 不懂SHELL 帮忙加注释

发表于 : 2012-04-02 21:06
hceasy
MOTO的硬件皮实。

Re: 不懂SHELL 帮忙加注释

发表于 : 2012-04-02 21:09
YeLee
我这边busybox居然要root……