各位大侠好
  
   目前碰到的问题是我在客户端进行OTA升级时,但却只是重启,而进不了recovery.apk具体情况如下:
     String cmd = "/system/xbin/walking_umfota  20130724104031169.zip";
//  String cmd = "reboot recovery";
String cmdOutPut = "\n";
try {
Process p = Runtime.getRuntime().exec(cmd);

 Log.v("Fota", "p = " + p);
 
 
BufferedReader in = new BufferedReader(new InputStreamReader(
p.getInputStream()));

Log.v("Fota", "in = " + in);

String line = null;
while ((line = in.readLine()) != null) {
cmdOutPut += line + "\n";
Log.v("Fota", "cmdOutPut = " + cmdOutPut);
}
} catch (IOException e) {
Log.v("Fota", "CommandUtil do_exec catch (IOException e)");
e.printStackTrace();
}其中/system/xbin/walking_umfota(这个是我的调用umfota.sh启动reboot recovery)  20130724104031169.zip(我们的升级包)
umfota.sh 如下:#!/system/bin/sh
# for sp6820 ota update.mkdir /cache/recovery command_file=/cache/recovery/commandcase "$#" in
"0")
echo "usage: $ sh /cache/recovery/ota.sh filename"
exit 0
;;
esacls /sdcard/walking/$1 > /dev/null
case "$?" in
"0")
;;
*)
echo "$1 not exist"
exit 0
esacecho --update_package=SDCARD:walking/$1 >$command_filesyncecho "flush command file" > /dev/null
reboot recovery现在的问题是,我用apk执行的时候,就只是重启,没有进recovery,连last_log都没有。(当然,升级包我是放在SDCARD:walking/20130724104031169.zip)
而我在手动用命令:
adb shell
/system/xbin/walking_umfota  20130724104031169.zip
却又是可以升级成功的。另外我在其它项目的代码都是一样,也是成功的,现在我搞不明白究竟是哪里出了问题?是不是还有apk的权限和adb的权限不一样导致的呢?
请各位大侠帮忙呀!另外,我也尝试了将umfota.sh的最后一句reboot recovery去掉了。
用apk执行后,我再用
adb shell
reboot recovery。这样也是成功的。所以现在怀疑是不是apk调用 reboot recovery没有权限,应该怎么去排除!谢谢