7

我最近对我的安卓手机进行了出厂重置。在重置之前,我能够通过adb install. 手机没有root。

恢复出厂设置后,对于 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,这可能很重要

4

8 回答 8

4

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

C:\> adb install ...

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

adb remount

和/或重新启动手机和/或重新安装手机驱动程序。有关更多信息,请参阅此线程

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

于 2013-10-01T03:19:24.020 回答
1

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

前往设置。向下滚动,直到看到系统标题。在它下面,您应该看到几个选项。如果开发人员不是其中之一,请单击关于手机,然后向下滚动到内部版本号。单击内部版本号 7 次。那应该带回开发人员模式。

于 2013-10-01T02:31:51.523 回答
0

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

于 2013-10-15T20:47:47.427 回答
0

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

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

于 2014-02-18T19:49:15.167 回答
0

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

最近我将我的(根) LGP500 从 Froyo(android 2.2.1)更新为 Gingerbeard(android 2.3.3)。在那之后,我发现自己的处境和你的很相似(老实说,一样)。我丢失了我的 SU 凭据,并拼命地试图找到解决该问题的方法。我非常绝望——我什至尝试了著名的Android 4.2启用开发人员设置的方法,在相当长一段时间内像疯子一样轻敲我那可怜的设备。所以......我有完全相同的问题。在网上冲浪时,我发现问题实际上出在 Gingerbeard 构建中,并偶然发现了一些有趣的解决方案。而且,经过所有的努力——我花了很长时间才弄清楚哪种方式是最好的——我(终于)将我的 2.3.3 设备植根了。

请注意,我仅出于教育目的分享这些内容。如果您不小心将设备变砖,则不会受到任何冒犯。


在继续之前检查是否:

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

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

如果一切正常:

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

您的用户功能正在某处被剥夺。查看/proc/<shell process>/status以查看功能掩码。

于 2015-10-14T06:55:12.493 回答
0

我在我的 Galaxy S3 上无休止地遇到这个问题当我建造我的安卓厨房时,我找到了解决这个问题的方法

  1. 如果您需要提升权限,请根设备
  2. 在 default.prop 中为您的设备解压构建内核,将这些值更改为相应的

ro.secure=0 ro.debuggable=1

  1. 编译/重新打包并刷入
  2. 启用 USB 调试
于 2016-04-01T04:29:32.987 回答
-1

你可以试试 SUInstaller。

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

基本上在你的手机上设置了su。这可能有效,从记忆中我使用了一次单击 androroot 来 root 三星 y。如果失败,请尝试启动恢复并闪烁 supersu,可以尝试三星银河方法,或基于它, http: //www.android.gs/root-samsung-galaxy-s3-with-cwm-recovery-and-超级/

祝你好运。

于 2015-01-09T01:33:59.370 回答