我创建了一个脚本,首先检查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是脚本 希望有人能找到解决方案
答案 0 :(得分:0)
鉴于您的系统遇到adb shell
问题,并根据我们在评论中的调试,最好的解决方案似乎是std unix解决方案,如
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.和谷歌搜索,看起来你需要使用
VER=$(echo $(adb shell getprop ro.build.version.release))
如果这不起作用,那么更通用的解决方案是进行一些挖掘并找出getprop
的位置,然后添加名称的完整路径,例如
/usr/local/special/bin/getprop
或者将该路径添加到PATH env变量
PATH="/usr/local/special/bin:$PATH"
在这个脚本的顶部,或者在一个shell的.rc(.profile,.bashrc等等)中。文件。
IHTH