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

Posted

技术标签:

【中文标题】如何使用 adb 命令在没有 sd 卡的设备上推送文件【英文标题】:How to use adb command to push a file on device without sd card 【发布时间】:2014-01-17 00:37:17 【问题描述】:

如何将文件从计算机推送到没有 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).

【问题讨论】:

尝试adb shell "cd /data/local && mkdir tmp" 然后adb push anand.jpg /data/local/tmp。如何检查设备上的文件,adb shell @RC 我正在使用 ls 命令来检查文件。我至少在模拟器上的 DDMS 视图上得到了它。但我仍然没有在设备上得到它。当我尝试“adb push”命令时,它显示未找到真实设备的设备。但 adb devices 正在显示设备。 我会停止模拟器,拔下设备,然后确保设备处于调试模式后,插入设备并重试 这个问题似乎离题了,因为它与编程无关。请参阅帮助中心的What topics can I ask about here。也许Android Enthusiasts Stack Exchange 会是一个更好的提问地点。 RC 的建议在这个变体中对我有用:adb shell "cd /sdcard && mkdir temp" 然后abd push x.apk /sdcard/temp" 我最终将我的文件放在我 sdcard 上的临时文件夹中,并且能够从那里闪存。 【参考方案1】:

在尝试了所有对我有用的答案之后

我在哪里将桌面上的文件推送到使用 adb 无线连接的 Android 设备 (Redmi K20 pro)。

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

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

运行后如果出现权限被拒绝错误

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

adb shell

chmod 777 /data/local/tmp

exit

然后运行尝试adb push 命令

我有documented this here 随时分享您的观点并帮助改进它。

【讨论】:

【参考方案2】:

在 Mac 中:通过 adb 推送文件

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

【讨论】:

【参考方案3】:

这可能是您可能会读到的最佳答案。 设置 Android Studio 然后只需查看并打开设备资源管理器。 右键单击文件夹并上传文件。

【讨论】:

【参考方案4】:

我是用这个命令做的:

语法:adb push filename.extension /sdcard/0/

示例:adb push UPDATE-SuperSU-v2.01.zip /sdcard/0/

【讨论】:

刚刚将一个 mp3 文件从 mac osX 移动到 android 5.0 设备,我必须在设备上写入文件名,即“adb push /file.mp3 /sdcard/fileOrOtherFileName. mp3"【参考方案5】:

试试这个推入内部存储。

adb push my-file.apk ./storage/emulated/0/

在一加设备中工作,无需 SD 卡。

【讨论】:

适用于三星【参考方案6】:

来自 Ubuntu 终端,以下对我有用。

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

【讨论】:

我正在使用 windows cmd 提示符,你可以告诉我在 windows 中如何做。 只需删除 './' 并使用简单的 adb 或 adb.exe。如果您还没有为 android 设置路径,请确保您在 platform-tools 文件夹中。 我们可以在不root手机的情况下这样做吗? @HardikTrivedi:您是说一般情况下使用 adb push 或这个特定的文件目的地需要生根吗?我正在使用 adb push 在非 root 设备上的 Android 设备 SD 卡上写入文件。 推送命令也适用于非root手机,只有/data文件夹需要root用户。【参考方案7】:

按照以下步骤操作:

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

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

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

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

现在您将看到 Android 设备中的目录和文件列表 在那里你可能会找到 /sdcard 和 /storage

3) cd /storage(回车/回车) 4) ls(按回车键/回车键)

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

5) 退出(回车/回车)

从 adb shell 中出来

6) ./adb push '/Users/SML/Documents/filename.zip' /storage/sdcard0/path_to_store/(回车/回车)

复制文件

【讨论】:

【参考方案8】:

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

寻找路径……

    在命令行中输入adb shell。 然后ls 并输入。

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

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

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

【讨论】:

【参考方案9】:

就我而言,我有一个已移除的 SDCard 仍在 Android 中注册。 所以我在下面长按了我旧 SDCard 的条目:

Settings | Storage & USB

然后选择“忘记”。

之后就正常了

adb push myfile.zip /sdcard/

工作正常。

【讨论】:

【参考方案10】:

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

    将文件设置到设备:

    adb push /home/myuser/myVideoFile.mp4 /storage/emulated/legacy/
    

    从设备获取文件:

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

获取代码中的路径:

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

这就是全部。此解决方案不会出现权限问题,而且效果很好。

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

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

【讨论】:

【参考方案11】:

先运行下面的命令

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

【讨论】:

【参考方案12】:

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

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

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

【讨论】:

我想添加指定的东西。我已经使用这个命令一段时间了,但格式有点不同。 adb -s $device shell am broadcast -W android.intent.action.MEDIA_SEARCH。如果您连接了多个设备,则需要-s $device【参考方案13】:

有时你需要扩展,

adb push file.zip /sdcard/file.zip

【讨论】:

我有 LG Nexus 5,您不能将外部 sdcard 放入其中,但内部存储器的一部分就像 sdcard 在这种情况下,sdcard 只是根级别的目录您可以当您在 shell 中调用 'ls' 以获取目录列表时,请通过调用 'adb shell' 来检查它【参考方案14】:

您正在尝试写入系统文件夹。使用 ADB,您具有 root(管理员)访问权限,因此您可以看到 sdcard 是其中之一的系统文件夹,以便发送您可以使用的图片

D:\Program Files\Android\sdk\platform-tools\adb push am files\android sdk\adb.exe push C:\Downloads\anand.jpg /sdcard/pictures/

注意:C:\Downloads\anand.jpg 替换为图片的路径和名称..

【讨论】:

【参考方案15】:

我有一个没有外部存储的 Nexus 4。然而 Android 认为有一个,因为它挂载了一个名为“storage”的单独分区,挂载在“/storage/emulated/legacy”中,所以尝试推到那里:adb push anand.jpg /storage/emulated/legacy

【讨论】:

对于我的 nexus 4 /sdcard.file.zip 就像一个魅力。

以上是关于如何使用 adb 命令在没有 sd 卡的设备上推送文件的主要内容,如果未能解决你的问题,请参考以下文章

adb的screenrecord录屏功能

是否可以在 Android 设备中访问 SD 卡的特定 LBA

安卓adb是啥

recovery模式下的 from ADB怎么使用,下载了ADB工具怎么推送文件?

常用adb命令

如何通过 ADB 命令将便携式 SD 卡变成内部存储?