今天把玩手头的那部Android手机时碰到一个问题,即因为权限问题无法将文件复制到/system/和/data/分区中,经过一番折腾后,算是解决了,在此记录一笔。本方所涉及到的命令输入,均用斜体字表示。
情况是这样的:该台Android手机不提供adb root的权限,但又不能装破解root权限的软件,若要往Android手机的/system/和/data/分区下拷一些文件, 是否有其它方法可以将文件复制到上述的分区中? 当然,手机里的文件管理器没有提供将文件从存储卡上复制到这两个分区的功能,如果有哪个Android文件管理器提供类似的功能,在此也因为不能下载安装而做罢。
幸好,发现手机有预留方法可以使/system和/data分区获得写权限,而且也可以在adb shell里执行su命令以切换用户。能执行的su加上可写的分区,意味着该分区的杀剐均在我们的掌控之下了(如对手机内置的运营商定制软件不满,那就杀之……)。废话少说,假如要将test.mp3文件拷贝到/system/media/audio/目录下,可以按如下步骤执行:
1. 将目标文件test.mp3复制到存储卡上, /sdcard/test.mp3;<wbr></wbr>
2. 打开PC机上的命令行,输入adb shell并按回车进入Android系统命令行模式;
3. 输入cd system/media/audio并回车;
4. 输入cat /sdcard/test.mp3 > test.mp3并回车。
当第4步完成后,在命令行下输入命令ls应该就能看到test.mp3文件了。当然,步骤3也可省略,在adb shell里,直接敲入命令cat /sdcard/test.mp3 >/system/media/audio/test.mp3效果也是一样的。
因为Andorid命令行里没有cp命令(我一直未能明白为何不将该命令集成进去?),但是有mv这一条命令,那为什么不直接输入mv /sdcard/test.mp3 /system/meida/audio/test.mp3呢?好,那我们试一下该命令,得到答复是:“failed on '/sdcard/test.mp3' - Cross-device link”, 也就是说mv命令不允许将存储卡中的文件复制到/system/或/data/分区中,因为两者被认为是在不同的设备上。所以步骤4采用cat命令,查一下cat的用法:cat
[选项]... [文件]... ,其作用是将[文件]或标准输入组合输出到标准输出。平常工作时偶尔会用到cat命令去显示文本文件的内容,然后又想到了重定向符'>',所以两者一结合,就自然则然地想到是否可以通过将cat的文件输出到指定位置来代替cp的功能?通过尝试发现确实可以,不过我不清楚Linux系统下cp命令的实现细节,回头去查一下看。前已叙及有了su命令及可写的分区,基本可以为所欲为了,所以曲线将文件复制到/system/或/data/分区后,如果文件权限/用户名/组不符合,就可以通过chmod和chown命令进行更改。当然,如果/system/没有写权限,那本记录所讲述的方法就不适用了。
分享到:
相关推荐
此adb中无adb disable-verity命令,如果在cmd中输入以上命令会报 /system/bin/sh: disable-verity: not found 的错误。具体可看本人的文章 ”/system/bin/sh: disable-verity: not found 的解决方案“ 【使用方式】...
升级到4.2.2最新的adb 工具包 error: device offline,二种版本,Windows和Linux各一套,解压即可使用。同时包含fastboot.
运行Android程序时,可能会出现 The connection to adb is down, and a severe error has occured.You must restart adb and Eclipse... 的错误
使用adb命令批处理安装卸载apk 安装: 安装比较简单,批处理获取拖放的文件参数直接调用adb命令即可,需要设置下adb的路径 卸载: 卸载稍微复杂一点,因为需要提供包名给adb,所以要获取apk的包名。这里使用的方法...
全网最全的adb命令,其中包含了adb的安装、adb命令的基本使用以及高级使用
可以直接使用命令apkpatch查看具体的使用方法。 使用示例:apkpatch -o D:/Patch/ -k debug.keystore -p android -a androiddebugkey -e android f bug-fix.apk t release.apk usage: apkpatch -f <new> -t ...
adb常用命令: adb devices 列出adb设备 adb reboot 重启设备 adb reboot boot loader 重启到fastboot模式 adb reboot recouery 重启到recovery模式 fastboot常用命令: fastboot devices 列出fas tboot设备 ...
android adb命令使用方法介绍,有需要的朋友可以下来看看。
JavaScript应用实例-adb5037常用命令.js
常用ADB命令使用培训常用ADB命令使用培训常用ADB命令使用培训常用ADB命令使用培训
ADB命令
一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到,也可以使用下文里 查看设备信息 - IP 地址 一节里的方法用 adb 命令来查看。 通过 IP 地址连接设备。 adb connect <device-ip-address> 这里的 ...
android adb shell 命令大全 1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器): android create avd --name 名称 --...
adb错误解决方法
adb和fastbooot 工具 ----------------------------------------- adb和fastboot命令示例 adb命令: adb devices :列出adb设备 adb reboot :重启设备 adb reboot bootloader :重启到fastboot模式 adb reboot ...
重新编译的支持adb disable-verity命令的adb,通常用于解锁system分区
如果你的电脑连了多台设备,又需要直接使用adb命令时,会非常痛苦(特别是输完长长的命令后,还得回头 adb devices 后编辑命令重新执行)。 sadb 很好地解决了这个问题,不再需要你手动加 -s 参数,甚至可以一条命令...
一键解决adb端口被占用 一键解决"* daemon not running. starting it now on port 5037 * * daemon started successfully * ** daemon still not running error: cannot connect to daemon"问题 一键解决adb devices...
Android手机零基础/新手使用方法 LG nexus5 LG nexus5X Nexus 6P Pixel Pixel2 Pixel3 Pixel4 Pixel5 ...以上Google系列Android手机,Android系统无法联网问题的解决方法,超详细的使用方法和步骤!