今天把玩手头的那部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; 

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上使用cp/mv命令的替代方法(failed on '***' - Cross-device link解决方法)的更多相关文章

  1. eclipse上一次没有正确关闭,导致启动的时候卡死错误解决方法

    关于 eclipse启动卡死的问题(eclipse上一次没有正确关闭,导致启动的时候卡死错误解决方法),自己常用的解决方法: 方案一(推荐使用,如果没有这个文件,就使用方案二): 到<works ...

  2. IIS上虚拟站点的web.config与主站点的web.config冲突解决方法 分类: ASP.NET 2015-06-15 14:07 60人阅读 评论(0) 收藏

    IIS上在主站点下搭建虚拟目录后,子站点中的<system.web>节点与主站点的<system.web>冲突解决方法: 在主站点的<system.web>上一级添 ...

  3. WordPress Import 上传的文件尺寸超过php.ini中定义的upload_max_filesize值--&gt;解决方法。

    參考一: WordPress Importer上传导入备份文件时遇到这样一个错误,提示"上传的文件尺寸超过 php.ini 中定义的 upload_max_filesize 值". ...

  4. 【java】javac命令在win10不可用,提示javac不是内部或外部命令,也不是可运行的程序【解决方法】

    JDK安装成功,并且配置了环境变量,java命令正常可以使用,但是javac命令提示 不是内部或外部命令,也不是可运行的程序 解决方法: 产生这个问题的原因,是因为环境变量的配置中,Path中配置使用 ...

  5. ‘mysql’不是内部或外部命令,也不是可运行的程序--解决方法

    一.场景 在cmd命令窗口下操作mysql时,提示mysql不是内部或外部命令,也不是可运行的程序. 二.原因 有3种原因: 1.没有装mysql 2.没有配置mysql环境变量 3.cmd命令窗口没 ...

  6. Win2008上.NET4.0部署出错HTTP 错误 500.21 - Internal Server Error的解决方法

    原因:在安装Framework v4.0之后,再启用IIS,导致Framework没有完全安装 解决:开始->所有程序->附件->鼠标右键点击“命令提示符”->以管理员身份运行 ...

  7. 命令行下执行python找不包的解决方法

    首先我们来了解一下,为什么会出现这样的问题,以及python搜索包的机制是怎么样的 1.为什么会出现这样的问题? 包是向下搜索机制. 2.为什么ide中执行没有报找不到包的问题? python搜索机制 ...

  8. DOS命令(系统错误5,拒绝访问)的解决方法

    在用DOS命令启动MySQL服务时,出现(系统错误5,拒绝访问)的错误提示,这是由于我们操作的权限不足造成的,需要以管理员身份启动,解决问题方法如下: 1."Windows+S"- ...

  9. python程序在命令行执行提示ModuleNotFoundError: No module named 'XXX' 解决方法

    在ide中执行python程序,都已经在默认的项目路径中,所以直接执行是没有问题的.但是在cmd中执行程序,所在路径是python的搜索路径,如果涉及到import引用就会报类似ImportError ...

随机推荐

  1. C++ Primer : 第十二章 : 文本查询程序

    C++ Primer书上这个例子讲的很不错,写写帮助自己理解标准库和智能指针. .h 文件内容 #include <fstream> #include <iostream> # ...

  2. 目前用到最全的datagrid(easyui)

    包含checkbox.复合表头.多行可编辑单元格.combobox单元格,就差上次做的table中每行中的关联检索combobox单元格了.目前已修改为单行编辑,多行编辑时的check有问题 $(&q ...

  3. poj1417 带权并查集+0/1背包

    题意:有一个岛上住着一些神和魔,并且已知神和魔的数量,现在已知神总是说真话,魔总是说假话,有 n 个询问,问某个神或魔(身份未知),问题是问某个是神还是魔,根据他们的回答,问是否能够确定哪些是神哪些是 ...

  4. Android项目——传感器的使用

    public class MainActivity extends Activity { // 定义 方向传感器 和 重力传感器 private TextView tvOrientation, tvA ...

  5. C++ code Summary --- 2015.11.8

    C++ code summary map<int, PersonClassifier>::iterator it与 map<int, PersonClassifier> it的 ...

  6. 特征值分解与奇异值分解(SVD)

    1.使用QR分解获取特征值和特征向量 将矩阵A进行QR分解,得到正规正交矩阵Q与上三角形矩阵R.由上可知Ak为相似矩阵,当k增加时,Ak收敛到上三角矩阵,特征值为对角项. 2.奇异值分解(SVD) 其 ...

  7. lucene 索引流程整理笔记

    索引的原文档(Document). 为了方便说明索引创建过程,这里特意用两个文件为例: 文件一:Students should be allowed to go out with their frie ...

  8. LOMO效果

    //LOMO效果 public static Bitmap changeToLomo(Bitmap bitmap) { int width = bitmap.getWidth(); int heigh ...

  9. python三种数据库连接池方式

    psycopg2.pool – Connections pooling Creating new PostgreSQL connections can be an expensive operatio ...

  10. 内网渗透中的反弹Shell与端口转发

    from:https://www.91ri.org/9367.html Web渗透中的反弹Shell与端口转发 php需未禁用exec函数一:生成php反弹脚本msf > msfpayload ...