每个命令都有“不允许操作”的adb shell

时间:2013-10-01 01:12:53

标签: android adb galaxy

我最近在我的Android手机上重置了工厂。在重置之前,我能够通过adb install安装应用程序。电话没有扎根。

出厂重置后,我几乎对adb shell中的每个命令都有“不允许操作”(包括那些不存在的命令):

$ install
install: permission denied
$ push
push: permission denied
$ remount
remount: permission denied
$ su
su: permission denied
$ kmmsaldfmaldskfmlasdf
kmmsaldfmaldskfmlasdf: permission denied
$

大多数PATH对我来说都是不可读的(/ system / bin和/ system / xbin除外):

$ echo $PATH
/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
$ ls /sbin
opendir failed, Permission denied
$ ls /vendor/bin
/vendor/bin: No such file or directory
$ ls /system/sbin/
/system/sbin/: No such file or directory

如果我运行adb root

$ adb root
adbd cannot run as root in production builds

从我的搜索(已经让我的时间超过必要的时间),一些指针是default.prop:

$ cat default.prop
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=1
ro.allow.mock.location=0
ro.debuggable=0
persist.service.adb.enable=1
$

但我没有对default.prop的写访问权:

$ ls -l default.prop 
-rw-r--r-- root     root          118 1969-12-31 19:00 default.prop
$

我似乎也无法重新安装。我已经能够在非root设备上成功使用adb,为什么现在这么悲痛?有人遇到过这个问题吗?我自己的手机几乎无法使用,当然我无法进行任何开发。

尝试重新安装为rw:

$ mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
/dev/stl9 /system rfs ro,relatime,vfat,log_off,check=no,gid/uid/rwx,iocharset=cp437 0 0
/dev/stl10 /cache rfs rw,nosuid,nodev,relatime,vfat,llw,gid/uid/rwx,iocharset=cp437 0 0
/dev/stl6 /mnt/.lfs j4fs rw,relatime 0 0
/dev/stl11 /data rfs rw,nosuid,nodev,relatime,vfat,llw,check=no,gid/uid/rwx,iocharset=cp437 0 0
$ mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /
mount: Operation not permitted

我的手机是三星Galaxy Y,这可能很重要

8 个答案:

答案 0 :(得分:3)

您需要从PC命令行发出install之类的命令:

C:\> adb install ...

而不是来自adb shell。如果这不起作用,您可能需要运行

adb remount

和/或重启手机和/或重新安装手机驱动程序。有关详细信息,请参阅this thread

我发现adb shell会话中的路径可以包含各种不存在的目录。我不知道为什么会这样,但通常不会搞砸任何东西。

答案 1 :(得分:1)

假设您没有在手机上安装新版Android,我的猜测是您的手机不再处于开发者模式。

转到“设置”。向下滚动,直到看到“系统”标题。在它下面,你应该看到几个选项。如果Developer不是其中之一,请单击About phone,然后向下滚动到Build number。单击Build number 7次。这应该会带回开发者模式。

答案 2 :(得分:0)

尝试从恢复中执行这些命令,最近的恢复是debuggable = 1 然后反编译内核并将ro.debuggable = 0更改为1,这将允许您使用adb重新安装并允许adb以root身份运行!

答案 3 :(得分:0)

我可能已经为您找到了解决方案

最近我将我的(rooted) LGP500从Froyo(android 2.2.1)更新为Gingerbeard(android 2.3.3)。在那之后,我发现自己处于某种情况,与你的情况非常相似(相同,说实话)。我丢失了我的SU证书,拼命想找到解决这个问题的方法。我是如此绝望 - 我甚至尝试了着名的Android 4.2 method启用开发人员设置,像疯子一样轻拍我的可怜设备已有一段时间了。  所以...我有完全相同的问题。在浏览网页时,我发现问题实际上是在Gingerbeard构建中,并偶然发现了一些有趣的解决方案。  并且,经过所有努力 - 我花了很长时间才弄清楚哪种方式最好 - 我(最后)让我的2.3.3设备生根。

请注意,我仅在教育方面仅分享这些内容。如果你意外地弄乱你的设备,就不会冒犯。


在继续检查之前是否:

  • 您已正确安装ADB驱动程序(如果没有 - 将显示错误 使用以下文字:“找不到在线设备,请启用 USB调试!“;解决方案 - 安装或重新安装ADB驱动程序。记住 您必须安装连接设备的驱动程序,但“USB 调试“禁用。
  • 您已选中“USB调试”和“允许模拟位置”。

    建议备份以防止任何数据丢失。 (至少将您的联系人导出到.vcf文件)

如果一切正常:

  1. 安装UnlockRoot(您可以找到Unlock_Root_2.3.0.exe here)并执行它。
  2. 运行“root”(实际上你可以忽略除“root”按钮之外的所有内容)。在弹出菜单中选择您的设备。
  3. 重新启动设备(完成SU二进制文件的安装 - 如果您想重新启动,将在应用程序中提示您,但可以通过adb shell自行完成) 瞧!你的设备已经扎根了,就像那样。

答案 4 :(得分:0)

您应该从Google Play安装SuperSU应用。这是唯一一款在我的设备上正确启用root功能的超级用户应用程序(Galaxy S4)。

之后执行adb shellsu。如果要从 / data 目录中提取文件,则需要更改该文件的权限(使用chmod)。然后它应该工作!

答案 5 :(得分:0)

您的用户功能正在被剥离。查看/ proc // status以查看功能掩码。

答案 6 :(得分:0)

我的银河S3上无休止地遇到了这个问题 当我建立我的Android厨房时,我找到了解决这个问题的方法

  1. 如果您需要激活权限,请将设备置为
  2. 解压缩为您的设备构建内核 在default.prop中将这些值更改为相应的
  3. ro.secure=0 ro.debuggable=1

    1. 编译/重新包装并刷新
    2. 启用USB调试

答案 7 :(得分:-1)

您可以尝试SUInstaller。

http://theroot.ninja/apks/SUInstaller.apk

基本上在手机上设置su。这可能是有效的,从内存中我只用了一次点击就可以看到root samsung y。 如果失败,尝试启动恢复和闪烁的超级,可以尝试三星galaxy方法,或基于你的, http://www.android.gs/root-samsung-galaxy-s3-with-cwm-recovery-and-supersu/

古德勒克。