【问题标题】:adb shell command: mkdir (for creating a directory)adb shell 命令:mkdir(用于创建目录)
【发布时间】:2012-11-02 15:13:22
【问题描述】:

我正在尝试通过 adb shell 创建目录

我必须在 etc 文件夹中创建一个不成功的目录。我设法弄清楚它链接到/system/etc 并尝试在/system/etc 中创建,但在这两种情况下我都得到“只读文件系统”。

如何让它读写?

我尝试使用“su”切换到超级用户。

我尝试在主机中修改udev/rules.d

created a file 51-android.rules with " SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"  "

我仍然得到相同的“只读文件系统”。

我该如何解决这个问题?

【问题讨论】:

  • 大多数 shell 命令都适用于 android...查看 chown 命令
  • 这不是这个特定问题的答案,但它可能会帮助有类似问题的其他人:adb shell mkdir/sdcard 或其子文件夹中使用时效果很好。在我的情况下,我打算在/sdcard 的子文件夹中使用它,但不小心指定了一个我无权访问的文件夹,因为我的手机没有植根。因此,如果您在应该有权访问的文件夹中收到此错误,则可能是在错误的文件夹中。

标签: android adb mkdir


【解决方案1】:

[Trick] 使用 adb push 在非 root 手机中创建一个目录(或各种):

如果你使用命令

adb push myfolder /storage/sdcard0/Download

而“myfolder”里面还有另外一个文件夹,这些文件夹会在手机的“Download”文件夹里面创建

所以,我用来在我的应用中安装资产的技巧:

adb push assetfolder /storage/sdcard0/Android/data/com.myapp.name/

那么“assetfolder”包含

assetfolder/
   assetfolder/db/mysqlite.db
   assetfolder/img/myimage.png
   assetfolder/json/initial-data.json

那么我的应用就有了

com.myapp.name/db/mysqlite.db
com.myapp.name/img/myimage.png
com.myapp.name/json/initial-data.json

希望对您有所帮助!

【讨论】:

  • 如果文件夹包含文件,这可以正常工作,但如果我尝试使用空文件夹执行此操作,它会输出“0 个文件已推送,0 个已跳过”并且不执行任何操作。
  • 对@DonaldDuck。我确认我正在复制的文件夹里面有文件。我想您的情况的解决方法是在文件夹中添加一个小文件,因此复制成功
【解决方案2】:

http://android-tricks.blogspot.in/2009/01/mount-filesystem-read-write.html

mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system

这很有用:现在我可以创建目录了 :)

【讨论】:

    【解决方案3】:

    以root身份登录,使用此命令,它有帮助

    亚行根 adb 重新挂载

    【讨论】:

      【解决方案4】:

      以root身份登录,只需在命令模式下使用Linux命令将以下权限添加到您的文件:

      $ chmod 777 rules.d

      【讨论】:

      • 让所有用户都可写系统文件不仅不明智,而且也不是“只读文件系统”的解决方案——问题在于文件系统的挂载,而不是权限单个文件。