怎样向android手机/data/data/package

 我来答
zero3bt
2016-12-13 · TA获得超过905个赞
知道小有建树答主
回答量:858
采纳率:50%
帮助的人:310万
展开全部
一个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应该能完成以上所有的事情,就算没别的优势,至少能用键盘,不用在手机上一个一个的按字母,眼睛都看花了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式