如何使用 adb 命令在没有 sd 卡的设备上推送文件

如何将文件从电脑推送到没有 SD 卡的 Android 设备上,我试过:

C:\anand>adb push anand.jpg /data/local
3399 KB/s (111387 bytes in 0.032s)


C:\anand>adb push anand.jpg /data/opt
3199 KB/s (111387 bytes in 0.034s)


C:\anand>adb push anand.jpg /data/tmp
3884 KB/s (111387 bytes in 0.028s)

上面的命令将一个文件 anand.jpg移动到一个设备上,但是我没有在设备上得到这个 jpg文件。 我没有得到任何成功的结果在 cmd 提示,我只得到:

3399 KB/s (111387 bytes in 0.032s).
684165 次浏览

从 Ubuntu 终端,下面的工程为我。

./adb push '/home/hardik.trivedi/Downloads/one.jpg' '/data/local/'

我有一台 Nexus4没有外部存储器。然而,Android 认为有一个,因为它挂载一个分离的分区称为“存储”,挂载在“/Storage/仿真/遗留”,所以尝试推到那里: adb push anand.jpg /storage/emulated/legacy

您正在尝试写入系统文件夹。使用 ADB,您可以访问 root (admin) ,因此您可以看到系统文件夹中的 sdcard,以便发送您可以使用的图片

D: Program Files Android sdk Platform-tools adb push am Files Android sdk adb.exe push C: 下载 anand.jpg/sdcard/photos/

注意: C: 下载 anand.jpg,使用图片的路径和名称替换..。

我使用了 push命令,它有语法:

adb push filename.extension /sdcard/0/

复制目录和子目录内容的示例:

adb push C:\my-location\data\. /storage/emulated/0/Android/data

值得注意的是,push只是挂在最新的平台工具(33.0.1,在编写本文的时候)为一定数量的文件,除了 adb.exe突然需要5MB + 而不是1.5 MB,因此,我只是用我从 ABC4版本的平台工具中得到的一个代替了 adb.exe(我没有降级整个平台工具,因为 adb.exe是一种独立的)。

不要说有任何围绕 data文件夹的阴谋,

但是我的三星设备限制了我的 USB 文件传输,除了 Android v11+不允许访问 data文件夹,因此我需要以上的命令以100% 的速度工作(没有挂起一个小时多一点的文件)。

遵循以下步骤:

到 Android Sdk,然后在你的终端或控制台上的“平台工具”路径

(在 mac 上,默认路径是:/Users/USERNAME/Library/Android/sdk/Platform-tools)

要检查设备上安装的 SDCards (外部和内部) ,请触发以下命令:

  • 1) ./adb shell(按回车键/回车键)
  • 2) CD-(按回车键/回车键)

现在您将看到来自您的 android 设备的目录和文件的列表 在那里你可以找到/sdcard 以及/存储

  • 3) 光碟/储存器(按回车键/回车键)
  • 4) 是的(按回车键/回车键)

您可能会看到 SDCard 0(通常是内部存储)和 SDCard 1(如果存在外部 SDCard)

  • 5) 出口(按回车键/回车键)

走出 adb shell

  • 6) < strong > ./adb push’/Users/SML/Document/filename.zip’ /Storage/sdcard 0/path _ to _ store/ (单击 return/enter)

复制文件

首先在命令下运行

adb root
adb remount

然后执行之前输入的内容

C:\anand>adb push anand.jpg /data/local
C:\anand>adb push anand.jpg /data/opt
C:\anand>adb push anand.jpg /data/tmp

有时候你需要分机,

Adb push file.zip/sdcard/file.zip

我的解决方案(例如随机的 mp4视频文件) :

  1. 将文件设置为设备:

    adb push /home/myuser/myVideoFile.mp4 /storage/emulated/legacy/
    
  2. Get a file from device:

    adb pull /storage/emulated/legacy/myVideoFile.mp4
    

For retrieve the path in the code:

String myFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/myVideoFile.mp4";

仅此而已。这个解决方案不会出现权限问题,而且运行良好。

最后一点: 我想更改视频元数据信息。如果你想写入你的设备,你应该在 AndroidManifest.xml中更改权限。添加这一行:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

某些版本的 android 不会触发适当的任务来更新文件系统的状态。 您可以触发更新文件系统状态的显式意图。 (我只是在同一个 OP 的情况下进行了测试)

adb shell am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///

(您可以传递一个特定的文件路径,而不是像 file:///sdcard那样传递 file:///)

在我的情况下,我有一个已经删除的 SDCard 仍然在 Android 中注册。 因此,我长时间按下我的旧 SDCard 的条目:

Settings | Storage & USB

选择了“忘记”。

之后变成了正常人

adb push myfile.zip /sdcard/

还不错。

因为不同的版本有不同的路径,下面是一个通用的解决方案:

找到那条路。

  1. 在命令行中输入 adb shell
  2. 然后是 ls和 Enter。

现在您将看到 Android 设备的文件和目录。现在结合 lscd dirName找到内部或外部存储的路径。

在根目录中,目录名称类似于 mnt, sdcard, emulator0,等等

例子: adb push file.txt mnt/sdcard/myDir/Projects/

尝试这样推入内部存储。

Adb 推我的-file. apk./Storage/emated/0/

工作在一加设备,没有 SD 卡。

这可能是你能读到的最好的答案。 安装 Android Studio 然后只需要查看和打开设备资源管理器。 右键单击文件夹并上传一个文件。

在 Mac 中: 通过 adb 推送文件

adb push /Users/Downloads⁩/amazon.sdktester.json '/mnt/sdcard/amazon.sdktester.json'

在尝试了所有的答案之后,这个方法对我起作用了

我推动桌面上的一个文件到 Android 设备(红米 K20专业)连接在空中使用 adb。

这个命令将文件推送到我手机上的下载文件夹

adb push ~/Desktop/notifications.drawio ./storage/emulated/0/Download

如果您得到一个权限拒绝错误,在运行此

尝试按顺序运行这些命令(这基本上改变了目录权限)

adb shell


chmod 777 /data/local/tmp


exit

然后运行 try the adb push命令

我有 记录在案随时分享你的意见,并帮助改善它。