当前位置:首页>正文

如何修改时区data文件 怎样向android手机/data/data/package

2023-06-07 07:33:12 互联网 未知

如何修改时区data文件

查看时区
cat /etc/sysconfig/clock
设置时区
tzselect
timeconfig
cat /etc/sysconfig/clock ZONE=”Asia/Shanghai” —> /usr/share/zoneinfo 下面的文件。 UTC=false —> 硬件时钟是否为 UTC 或者说 GMT 时钟。 ARC=false —> 如果是在 Alpha 机器上,则设置为 true 。
把硬件时钟设置为 UTC 的好处就是他能自动设置夏时制,缺点是,在安装有多重操作系统启动的机器上,在另外的操作 系统上时钟会错误。
Linux 的时钟设置文件为:/etc/localtime ,实际上这个文件是 /usr/share/zoneinfo 目录下对应文件的符号连接。 假设我们所处的地区位于上海,那么只要运行以下的命令就可以设置时区了。
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Linux 启动时,其中的一个脚本(/etc/rc.d/rc.sysinit)会运行 /sbin/hwclock 程序,把当前的硬件时钟复制为系统 时间。hwclock 假定硬件时钟已经设置为本地时钟,除非带有 –utc 参数。脚本文件会读取 /etc/sysconfig/clock 文 件的设置,因此我们不需要修改脚本,直接修改这个配置文件就可以了,根据需要把其中的 UTC 行,设置为 true 或 者 false。
设置硬件时钟时,首先使用 date 命令(“date MMDDhhmmYYYY.ss”) 设置好系统时钟,然后使用 “/sbin/hwclock –systohc” 把硬件时钟设置为和当前系统时间一致。
如果你在某些应用下面的时间是错误的,那么你在运行 Red Hat Linux 5.0 或 5.1,解决的办法是建立 /usr/lib/zoneinfo 到 /usr/share/zoneinfo 的符号连接:
ln -s /usr/share/zoneinfo /usr/lib/zoneinfo
小结:时钟设置的问题本身比较简单,但是它涉及到几个基本的配置文件:
/etc/rc.d/rc.sysinit /etc/sysconfig/clock /etc/localtime /usr/share/zoneinfo时区的配置文件是/etc/sysconfig/clock。用tzselect命令就可以修改这个配置文件,根据命令的提示进行修改就好了。 但是在实际工作中,发现这种方式是不能够使得服务器上的时间设置马上生效的,而且使用ntpdate去同步时间服务器也不能够更改时间。即使你使用了date命令手工设置了时间的话,如果使用ntpdate去进行时间同步的话,时间又会被改动到原来的错误时区的时间。而生产的机器往往是非常重要的,不能够进行重启等操作。 在网上找了几种方法试了下,发现如果要修改时区并且马上生效,可以更换/etc/localtime 文件来实现。比如我的时区是中国上海,那么就可以使用如下的命令来使得时区的更改生效。 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 然后最好使用下面的命令将更改写入bios。

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

一个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完全可以实现。命令都不变