首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于检查Android版本的脚本,然后继续安装?

用于检查Android版本的脚本,然后继续安装?
EN

Stack Overflow用户
提问于 2014-03-20 11:30:14
回答 1查看 1.9K关注 0票数 0

我创建了一个脚本,它首先检查android版本,然后将相应的文件安装到系统中(因为每个android版本的文件并不相同)。

这是剧本

代码语言:javascript
复制
#!/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中,我没有得到脚本的确切结果,但是日志如下所示

代码语言:javascript
复制
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是希望有人能找到解决方案的脚本

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-20 11:43:59

考虑到您的系统在使用adb shell时遇到了问题,根据注释中的调试,您最好的解决方案似乎是std解决方案,如

代码语言:javascript
复制
VER=$(awk -F= '/ro\.build\.version\.release/{print $NF}' /system/build.prop) 
echo "VER=$VER"
VER=4.1.2

原始解决方案留给了面临相同问题的其他人。

很明显这条线

代码语言:javascript
复制
VER=$(echo $(getprop ro.build.version.release))

正在创建错误消息。

根据several posting here on S.O.和googling,看起来您需要使用

代码语言:javascript
复制
VER=$(echo $(adb shell getprop ro.build.version.release))

如果这不起作用,那么更普遍的解决方案是进行一些挖掘,找出getprop在哪里,然后将完整的路径添加到名称中,如

代码语言:javascript
复制
/usr/local/special/bin/getprop

或将该路径添加到路径env变量中。

代码语言:javascript
复制
PATH="/usr/local/special/bin:$PATH"

在这个脚本的顶部,或在shell的一个.rc (.profile、.bashrc等)中。文件。

IHTH

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22531606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档