如何使用 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 设备的文件和目录。现在结合ls
和cd 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 卡的设备上推送文件的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Android 设备中访问 SD 卡的特定 LBA