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

eal*_*nso 6 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
$
Run Code Online (Sandbox Code Playgroud)

大多数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
Run Code Online (Sandbox Code Playgroud)

如果我跑adb root:

$ adb root
adbd cannot run as root in production builds
Run Code Online (Sandbox Code Playgroud)

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

$ cat default.prop
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=1
ro.allow.mock.location=0
ro.debuggable=0
persist.service.adb.enable=1
$
Run Code Online (Sandbox Code Playgroud)

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

$ ls -l default.prop 
-rw-r--r-- root     root          118 1969-12-31 19:00 default.prop
$
Run Code Online (Sandbox Code Playgroud)

我似乎也无法重新安装.我已经能够在非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
Run Code Online (Sandbox Code Playgroud)

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

Ted*_*opp 5

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

C:\> adb install ...
Run Code Online (Sandbox Code Playgroud)

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

adb remount
Run Code Online (Sandbox Code Playgroud)

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

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


Joe*_*lin 1

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

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