怎样向android手机/data/data/package_name/目录下拷贝文件
来源:互联网 发布:win10网络连接显示红叉 编辑:程序博客网 时间:2024/05/17 01:39
背景。
一个apk安装后,在android系统中有一个私有的目录供存储数据用,在/data/data/package_name/下。关于这个目录的说明,网上有很多说明。对于应用而言,操作这个目录是没有问题的。但对于一些必须手动创建的,比如程序初始化资源、认证资源,普通的做法还是直接把文件直接拷进去,这就必须能够访问这些目录才行。
在这种需求下,仅仅是把手机连上pc就办不到了。用以下的方式可以办到。
首先,手机必须root过。如何判断手机是否root过在网上有很多帖子,我就不写了。
第二,要在pc上安装android_usb_windows驱动。在xp下弄这个遇到点儿麻烦。从网上下载的安装包里面只有sys文件、dll文件、inf文件。右键点inf文件,然后选择“安装”,这个过程完成后,在系统的硬件管理中应该出现一个问题设备,也就是说,其实安装是失败了,所以看起来必须手动安装(是否直接手动安装也可以没试验过)。安装过程中,设备驱动描述文件还是选择刚才的inf文件。安装后必须重启。重启电脑后,要保持设备仍然连接在usb上,系统会提示找到新硬件,这时候,剩下的事情windows就能自己搞定了。
第三步,捣腾文件。这一步我弄的比较复杂,不知道有没有简单的办法。按理说用adb应该能搞,不过我遇到一些问题解决不了,所以就想其它的办法了。步骤是这样的:
a:把文件拷贝到手机里。做过第二步,手机连上pc,从pc里能够访问手机的存储卡,上面应该有个“download”目录。我就是直接把需要的文件拷贝到这个目录里面。
b:在手机上安装一个“终端模拟器”,google play商店里有,运行它,用linux命令就可以将放在download目录下的文件拷贝到需要的目录里面去。比如文件名是"abc.x",应用的包名是"com.x.app",那么命令就是这样的:
>su
>cp /mnt/sdcard/download/abc.x /data/data/com.x.app/files/
此时,文件abc.x应该已经出现在它应该出现的地方了。不过,接下来我还遇到了问题。可能因为拷贝文件使用su登录的,所以此时应用并不能访问abc.x,通过以下命令可以看到:
>cd /data/data/com.x.app/files/
>ls -l abc.x
显示的结果是:
--------- root root ...............
说明这个文件属于root用户,或者说,至少应用不能用它。所以就想到把文件的所有者和权限给改一下。linux下修改文件的所有者和权限的帖子就太多了,很容易找。在android中,每个应用都有自己的用户,所以,改变文件的所有者和访问权限之前,必须知道要改成什么。那么用下面的命令:
>cd /data/data/
>ls -l com.x.app
可能的数出结果是:
drwxrwx--x u0_a57 u0_a57 2013-03-22 15:22 cache
drwxrwx--x u0_a57 u0_a57 2013-03-22 15:22 files
............................
可以看出来,u0_a57就是应用com.x.app在系统中的用户。
那么,问题就变得简单了,用以下的命令修改文件权限:
>cd /data/data/com.x.app/files
>chown u0_a57:u0_a57 *
>chmod 700 *
做完这一步以后,应用运行就完全没有问题了。
写完了。这就是我的办法。我一直认为,用adb应该能完成以上所有的事情,就算没别的优势,至少能用键盘,不用在手机上一个一个的按字母,眼睛都看花了。
最后,感谢网上写帖子、博客帮助其他人的童鞋们。没有你们的帖子和博客,我也解决不了这个问题。
另:
今天又试验了下,用adb完全可以实现。命令都不变
- 怎样向android手机/data/data/package_name/目录下拷贝文件
- 数据储存(1):文件存储,保存至/data/data/"package_name"/files/目录下
- adb如何获取手机data/data目录下的文件
- adb如何获取手机data/data目录下的文件
- Android里查看/data/data目录下所有文件
- android asserts文件读出到 /data/data/pkg/目录下
- Android 拷贝已有数据库到私有目录下以及数据库升级(data/data/databases/)
- 【Android基础】通过流将文件写入手机data目录
- Android data/data目录
- Android data目录读写文件
- Android data目录读写文件
- Android复制Assets目录下的文件到/data/data目录
- Android Studio ——在不root手机的情况下读取Data目录下的文件
- Android手动清除APP中Data目录下的文件
- 用adb将手机/data/data/com.android.providers.contacts/databases下的contacts2.db拷贝到电脑上
- android webview加载/data/data/pkg/files/目录下html文件
- android 将数据缓存在文件中,放在/data/data/<package name>/files目录下
- 在不root手机的情况下读取Data目录下的文件
- hdu 1232畅通工程(DFS)
- 自然语言分析的一些感想
- UML 类图基础
- Intent(3)--打开网页
- Android 3D Carousel
- 怎样向android手机/data/data/package_name/目录下拷贝文件
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架
- Android APK反编译详解(附图)
- PE文件的执行顺序
- SQL索引优化(转)
- SimpleDateFormat注意事项
- MySQL视图
- java 案例之验证商品条形码
- jquery 回车事件