2013-01-16 27 views
0

我一直在试图编写一个脚本来硬化android。我没有成功!脚本跑得太快!可能

我正在通过模拟器运行一个AVD,并尝试了这两个android外壳和bash外壳,我加载。这个脚本很简单,你会在下面看到,每个命令都可以独立运行,但是在一个脚本中它只是运行得太快或者其他东西。

我知道在顶部没有shebang,但这是因为我插入一个错误。

我的脚本是:

echo    ANDROID 
echo  HARDENING STARTED 
device=/dev/block/mtdblock0 
mount -o rw,remount $device /system 
#removing files in the /system/xbin directory 
rm /system/xbin/tcpdump 
rm /system/xbin/su 
#removing files in the /system/bin directory 
rm /system/bin/bootanimation 
rm /system/bin/dumpstate 
rm /system/bin/ping 
rm /system/bin/ping6 
echo     ANDROID 
echo    HARDENING COMPLETE 

我已经采取了一切缩进了,因为我认为这可能会导致错误和目录和文件肯定存在。我已经穿着这件衣服三天了,穿着很瘦。

我在开始时选择了一个if语句来选择其他手机上的设备,但为了减少错误(这就是为什么我声明设备而不是挂载)的原因。

这里是错误:

   ANDROID 
     HARDENING STARTED 
mount: no such file or directory exist 
, no such file or directorytcpdump 
, no such file or directorysu 
, no such file or directoryootanimation 
, no such file or directoryumpstate 
, no such file or directorying 
, no such file or directorying6 

    ANDROID 
HARDENING COMPLETED 

注意合并目录在这之后是不是笔误。

感谢瑞安

+0

看来$ device变量是空的;你可以在mount命令之前尝试'echo $ device'吗? – Alepac

回答

3

您编辑的Windows系统文件,它有DOS样式结束线(<cr><lf>)。将其转换为使用Unix风格的行尾标记(<lf>),它应该可以正常工作。任何体面的程序员编辑都有能力为你做到这一点,或者你可以do it using standard command line tools

顺便说一句,shell根本不在乎缩进。这:

echo Hello 
echo world. 

是一样的:

echo Hello 
       echo world. 
+0

错综复杂的错误消息清楚地表明这种情况。文件名被打印出来,以'\ r'结尾,所以光标移回到第一列,错误信息被打印在文件名的开头。它解释了即使是来自挂载的错误,因为设备名称最后也会得到'\ r'。 –

1

更改结束Unix类型的线,将解决你的所有问题。