bug:刷机卡Logo界面,adb shell 报- exec '/system/bin/sh' failed: No such file or directory (2) -

当尝试通过ADB shell访问Android设备时遇到'exec '/system/bin/sh' failed: No such file or directory (2)'错误。问题可能与update.zip、recovery模式或ZIP包的完整性有关。尝试使用adb sideload方法,检查recovery日志,并考虑重新安装或修复system分区。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可能的问题:

1.update.zip 问题

2.recovery 问题

 

 

换!

 

 

 

有可能是不该取消cache.img的生成,不科学啊,,,那我换了img可能就可以。但为什么我换成adb sideload方式就可以的呢?到底有什么区别,是什么导致的sdcard方式卡在第一界面?

 

有可能是recovery 有问题,

symlink /sbin/busybox /system/bin/sh

原因分析:

有可能是recovery的原因,因为每次进入recovery都发现 /system 没有 mount ,

mount之后重启还是进不去。

 

munger:~/project/nexus4/B2G/out/target/product/mako/fota/fullimg$ adb shell
~ # cd cache/
lost+found/  recovery/
~ # cd cache/recovery/
/cache/recovery # ls
last_install  last_log.1    last_log.3    last_log.6    last_log.9
last_kmsg     last_log.10   last_log.4    last_log.7    log
last_log      last_log.2    last_log.5    last_log.8
/cache/recovery # 

 

adb sideload 进去的不用在rc下选mount /system也同样可以进去系统,郁闷。。。

排除zip有问题的可能性。

发生了什么。

 

看cache 下的Log发现:

cache里面的log:

刷分区的时候:

minzip: zlib inflate call failed (zerr=-3)

解压失败是这个意思?为什么?

 

有说是文件不完整,,,

zlib压缩库解压失败的问题

 

cache log:minzip: zlib inflate call failed (zerr=-3)

Flashing partition /boot
Flashing partition /data
minzip: zlib inflate call failed (zerr=-3)
Flashing partition /system
minzip: zlib inflate call failed (zerr=-5)
minzip: Can't extract entry to file.
script succeeded: result was [1.0]
Install from sdcard complete.

 

不对,,,应该是zip包的问题,之前用-full卡刷的 update.zip可以正常刷成功啊,那肯定是update.zip的问题了,醉了,绕半天,

用-fullimg就不行。

也不对,fullimg 的update.zip 用sideload 可以正常升级,包到底是有问题还是没问题,,矛盾,,,

 

 

-full 的log:

 

 

-fullimg 的卡刷Log

 

sizeload 的log:

root@mako:/cache/recovery # cat log                                            
I:using /data/media for /sdcard.
No files found.


Sideload started ...
Now send the package you want to apply
to the device with "adb sideload <filename>"...

sideload_service invoked
adbd exiting after successful sideload
E:listen on USB
E:userid is 2000
E:Event loop starting
I:sideload process finished
I:sideload thread finished
Restarting adbd...
Finding update package...
I:Update location: /tmp/update.zip
Opening update package...
Installing update...
Starting B2G FOTA: fullimg
Checking device
Device is compatible
Flashing partition /boot
Flashing partition /data
minzip: Size mismatch on inflated file (1894776832 vs -1)
minzip: Can't extract entry to file.
Flashing partition /system
script succeeded: result was [1.0]Rebooting...
I:using /data/media for /sdcard/0/clockworkmod/.recovery_version.
mkdir: can't create directory '/sdcard/0/': I/O error
root@mako:/cache/recovery # 

 

卡刷 Log:

/cache/recovery # cat log 
__bionic_open_tzdata: couldn't find any tzdata when looking for localtime!
__bionic_open_tzdata: couldn't find any tzdata when looking for GMT!
__bionic_open_tzdata: couldn't find any tzdata when looking for posixrules!
Starting recovery on Fri Apr 26 09:03:23 2019

framebuffer: fd 4 (768 x 1280)
ClockworkMod Recovery v6.0.4.7
recovery filesystem table
=========================
  0 /system ext4 /dev/block/platform/msm_sdcc.1/by-name/system 0
  1 /cache ext4 /dev/block/platform/msm_sdcc.1/by-name/cache 0
  2 /data ext4 /dev/block/platform/msm_sdcc.1/by-name/userdata 0
  3 /persist ext4 /dev/block/platform/msm_sdcc.1/by-name/persist 0
  4 /firmware vfat /dev/block/platform/msm_sdcc.1/by-name/modem 0
  5 /boot emmc /dev/block/platform/msm_sdcc.1/by-name/boot 0
  6 /recovery emmc /dev/block/platform/msm_sdcc.1/by-name/recovery 0
  7 /misc emmc /dev/block/platform/msm_sdcc.1/by-name/misc 0
  8 /radio emmc /dev/block/platform/msm_sdcc.1/by-name/modem 0
  9 /sbl1 emmc /dev/block/platform/msm_sdcc.1/by-name/sbl1 0
  10 /sbl2 emmc /dev/block/platform/msm_sdcc.1/by-name/sbl2 0
  11 /sbl3 emmc /dev/block/platform/msm_sdcc.1/by-name/sbl3 0
  12 /tz emmc /dev/block/platform/msm_sdcc.1/by-name/tz 0
  13 /rpm emmc /dev/block/platform/msm_sdcc.1/by-name/rpm 0
  14 /aboot emmc /dev/block/platform/msm_sdcc.1/by-name/aboot 0
  15 /tmp ramdisk ramdisk 0

W:Unable to get recovery.fstab info for /datadata during fstab generation!
W:Unable to get recovery.fstab info for /emmc during fstab generation!
W:Unable to get recovery.fstab info for /sdcard during fstab generation!
W:Unable to get recovery.fstab info for /sd-ext during fstab generation!
W:Unable to get recovery.fstab info for /external_sd during fstab generation!
I:Completed outputting fstab.
I:Connected to Vold..
I:200 0 Volumes listed.
I:Processing arguments.
I:Checking arguments.
I:device_recovery_start()
Command: "/sbin/recovery"

af.resampler.quality=4
ro.cm.device=mako
ro.cm.display.version=11-20140125-UNOFFICIAL-mako
ro.cm.version=11-20140125-UNOFFICIAL-mako
ro.qc.sensors.wl_dis=true
ro.sf.lcd_density=320
ro.com.google.clientidbase=android-google
ro.com.android.dateformat=MM-dd-yyyy
ro.com.android.dataroaming=false
ro.com
<think>嗯,用户想知道如何在Android设备上检测当前运行的版本是否为userdebug。我需要根据他们提供的引用资料来整理答案。首先,引用1提到通过TARGET_BUILD_VARIANT来判断编译版本,如果是userdebug或eng的话,ALLOW_ADBD_NO_AUTH为1。这可能是在编译时的属性,但用户可能想知道在运行时如何检测。然后引用3提到了adb shell命令来查看版本,比如通过getprop或者检查ro.build.type属性。 用户的问题分两个部分:检测当前运行的build类型是否为userdebug,以及如何在代码中进行判断。根据引用3,使用adb shell getprop ro.build.type可以返回user、userdebug或eng。这应该是一个直接的方法。另外,在代码中,可以通过Build.TYPE来获取这个属性,比如Build.TYPE.equals("userdebug")。需要确认这个字段是否可靠,但根据常见的Android API,Build类确实包含这些信息。 另外,引用1提到的TARGET_BUILD_VARIANT可能是在编译时的变量,而用户可能需要的是运行时检测。所以答案应该集中在运行时的方法,比如使用系统属性或者Build类的字段。另外,用户可能没有root权限,所以方法应该不需要root。adb方法适合通过命令行检查,而代码中的方法适合在应用内部判断。 还要注意用户可能是在开发过程中需要这个判断,比如根据不同的版本启用不同的功能或日志。需要确保提供的方法准确,并且考虑到不同的设备可能有不同的设置,比如自定义ROM可能修改这些属性,但一般情况下,ro.build.type是标准的。</think>在Android中检测当前设备是否为userdebug版本,可以通过以下方法实现: ### 方法一:通过系统属性获取 1. 使用`adb shell`执行命令: ```bash adb shell getprop ro.build.type ``` 若输出结果为$userdebug$,则表明当前为调试版本。其他可能结果包括$user$(正式版)和$eng$(工程机)[^3]。 2. 在Java代码中判断: ```java if (Build.TYPE.equals("userdebug")) { // 当前为userdebug版本 } ``` 通过`Build.TYPE`字段直接获取编译类型[^2]。 ### 方法二:检查adb root权限 在userdebug版本中可通过以下命令验证: ```bash adb root adb remount ``` 若成功获取root权限且可重新挂载系统分区,则表明是调试版本(注意:需要设备已开启USB调试授权)[^1]。 ### 方法三:查看系统文件 检查`/system/build.prop`文件中的属性: ```bash adb shell grep "ro.build.type" /system/build.prop ``` 该文件包含完整的构建属性信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值