我创建了一个脚本,它首先检查android版本,然后将相应的文件安装到系统中(因为每个android版本的文件并不相同)。
这是剧本
#!/system/bin/sh
VER=$(echo $(getprop ro.build.version.release))
LIB=/system/lib/libncurses.so
XBINS=/system/xbin/sqlite3
XBINO=/system/xbin/openvpm
XBINZ=/system/xbin/zipalign
LIBD=/system/lib
XBIND=/system/xbin
mount -o rw,remount /system
case $VER in
"2.3"*)
cp tmp/binbox/2.3.*/lib/libncurses.so "$LIBD"
cp tmp/binbox/2.3.*/xbin/sqlite3 "$XBIND"
cp tmp/binbox/2.3.*/xbin/openvpm "$XBIND"
cp tmp/binbox/2.3.*/xbin/zipalign "$XBIND"
chmod 644 "$LIB"
chown 0.0 "$LIB"
chmod 6755 "$XBINS"
chown 0.0 "$XBINS"
chmod 6755 "$XBINO"
chown 0.0 "$XBINO"
chmod 6755 "$XBINZ"
chown 0.0 "$XBINZ"
;;
"4.0"*)
cp /tmp/binbox/4.0.*/lib/libncurses.so "$LIBD"
cp /tmp/binbox/4.0.*/xbin/sqlite3 "$XBIND"
cp tmp/binbox/4.0.*/xbin/openvpm "$XBIND"
cp tmp/binbox/4.0.*/xbin/zipalign "$XBIND"
chmod 644 "$LIB"
chown 0.0 "$LIB"
chmod 6755 "$XBINS"
chown 0.0 "$XBINS"
chmod 6755 "$XBINO"
chown 0.0 "$XBINO"
chmod 6755 "$XBINZ"
chown 0.0 "$XBINZ"
;;
"4.1"*)
cp /tmp/binbox/4.1.*/lib/libncurses.so "$LIBD"
cp /tmp/binbox/4.1.*/xbin/sqlite3 "$XBIND"
chmod 644 "$LIB"
chown 0.0 "$LIB"
chmod 6755 "$XBIN"
chown 0.0 "$XBIN"
;;
"4.2"*)
cp /tmp/binbox/4.2.*/lib/libncurses.so "$LIBD"
cp /tmp/binbox/4.2.*/xbin/sqlite3 "$XBIND"
chmod 644 "$LIB"
chown 0.0 "$LIB"
chmod 6755 "$XBIN"
chown 0.0 "$XBIN"
;;
"4.3"*)
cp /tmp/binbox/4.3.*/lib/libncurses.so "$LIBD"
cp /tmp/binbox/4.3.*/xbin/sqlite3 "$XBIND"
chmod 644 "$LIB"
chown 0.0 "$LIB"
chmod 6755 "$XBIN"
chown 0.0 "$XBIN"
;;
"4.4"*)
cp /tmp/binbox/4.4.*/lib/libncurses.so "$LIBD
cp /tmp/binbox/4.4.*/xbin/sqlite3 "$XBIND"
chmod 644 "$LIB"
chown 0.0 "$LIB"
chmod 6755 "$XBIN"
chown 0.0 "$XBIN"
;;
esac运行我得到一个getprop:not found的脚本,这个脚本在cwm中运行,当脚本在恢复中运行时,文件被放置在tmp中,我没有得到脚本的确切结果,但是日志如下所示
Installing: /external_sd/a.zip
Finding update package...
I:Update location: /external_sd/a.zip
Opening update package...
Installing update...
minzip: Extracted file "/tmp/2.3/Arjun2.3.txt"
minzip: Extracted file "/tmp/4.0/Arjun4.0.txt"
minzip: Extracted file "/tmp/4.1/Arjun4.1.txt"
minzip: Extracted file "/tmp/4.2/Arjun4.2.txt"
minzip: Extracted file "/tmp/4.3/Arjun4.3.txt"
minzip: Extracted file "/tmp/4.4/Arjun4.4.txt"
minzip: Extracted file "/tmp/binbox.sh"
about to run program [/sbin/busybox] with 5 args
about to run program [/sbin/busybox] with 5 args
about to run program [/sbin/mount] with 2 args
Mounting /system
about to run program [/tmp/binbox.sh] with 2 args
about to run program [/sbin/busybox] with 3 args
Unmounting partitions...
script result was [Installation is complete...]
Installation is complete...
Install from sdcard complete.在这里,binbox.sh是希望有人能找到解决方案的脚本
发布于 2014-03-20 11:43:59
考虑到您的系统在使用adb shell时遇到了问题,根据注释中的调试,您最好的解决方案似乎是std解决方案,如
VER=$(awk -F= '/ro\.build\.version\.release/{print $NF}' /system/build.prop)
echo "VER=$VER"
VER=4.1.2原始解决方案留给了面临相同问题的其他人。
很明显这条线
VER=$(echo $(getprop ro.build.version.release))正在创建错误消息。
根据several posting here on S.O.和googling,看起来您需要使用
VER=$(echo $(adb shell getprop ro.build.version.release))如果这不起作用,那么更普遍的解决方案是进行一些挖掘,找出getprop在哪里,然后将完整的路径添加到名称中,如
/usr/local/special/bin/getprop或将该路径添加到路径env变量中。
PATH="/usr/local/special/bin:$PATH"在这个脚本的顶部,或在shell的一个.rc (.profile、.bashrc等)中。文件。
IHTH
https://stackoverflow.com/questions/22531606
复制相似问题