【问题标题】:how do i change timezone using adb如何使用 adb 更改时区
【发布时间】:2011-11-09 09:27:50
【问题描述】:

我想使用 adb shell 命令更改时区。

我浏览了一些允许在 linux 中更改它的帖子,但它们对 android 无效。

【问题讨论】:

    标签: android adb


    【解决方案1】:

    对于 tzdata 值的列表,我去http://en.wikipedia.org/wiki/List_of_tz_database_time_zones

    要设置时区,请使用setprop persist.sys.timezone <TZ> 命令:

    setprop persist.sys.timezone "America/Chicago"
    

    【讨论】:

    【解决方案2】:

    adb shell service call alarm 3 s16 America/Phoenix,立即生效。

    “setprop with persist.sys.timezone”仅在重启后有效。

    【讨论】:

    • 这个应该是首选答案=)
    • 这应该是不需要系统根目录的公认答案
    【解决方案3】:

    在我(非常)有限的经验中,我已经能够编辑 /system/build.prop 文件。我将其中的行更改为 persist.sys.timezone=America/Sao_Pao 或某些类似的驱动程序,以用于我的时区 CDT。我还将persist.sys.language=bt 和persist.sys.country=AR 分别更改为persist.sys.language=en 和persist.sys.country=US。

    您可以在文件中调整一些其他内容,这些内容将在系统还原后保留。您可能希望确保闪存映像或目录中的 build.prop 文件中包含正确的行。

    /system/property 目录似乎包含多个具有单个值的文本文件。这些似乎在使用 setprop 后出现,但操作系统似乎没有反映这些变化。

    编辑这些文件通常需要使用术语程序或 ADB.exe shell 的 root 访问权限。 (ADB = Android SDK 中提供的 Android Device Bridge)我在浏览 JXD.HK 的 S18 MiniPad 固件下载时发现了 ADB.exe。在 files.rar dl 中还有 SuperUser.apk 和一个 root 版本的 busybox 和 su。

    祝你好运!!!

    【讨论】:

      【解决方案4】:

      请参阅此https://gist.github.com/jpkrause/6b7e576894a800d451bf 以回答您的问题。

      因此,在您的情况下,它将是: adb shell setprop persist.sys.timezone America/Chicago

      【讨论】:

        【解决方案5】:
        adb shell service call alarm 4 s16 America/Chicago
        

        4 - 代表警报服务实现中的第四个功能。

        s16 - 代表字符串参数类型。

        https://android.stackexchange.com/questions/34625/where-to-find-description-of-all-system-bin-service-calls

        【讨论】:

          【解决方案6】:

          这适用于亚行

          获取当前全球时区:

          adb shell settings get global time_zone              
          

          设置时区:

          adb shell settings put global time_zone Europe/Madrid
          

          时区列表:

          https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

          【讨论】:

          • 我没有在我的 Marshmallow 设备上看到该设置,并且在 developer.android.com/reference/android/provider/… 中没有它的条目。
          • @Alex 我试过这样做,但我并没有在我的设备/模拟器上看到任何更改,时区仍然是我更改之前的时区,知道出了什么问题吗?
          • 我同意@Igal,这没有做任何事情
          • Settings 中只有 AUTO_TIME_ZONE 可以做其他事情。这确实没有任何作用。
          【解决方案7】:

          我更改了 2 个文件来更改我的时区。

          我不完全知道是否有必要,但它使事情保持同步:

            /etc/timezone
          

          你肯定需要改变的越多:

            /etc/localtime
          

          http://www.cyberciti.biz/faq/linux-unix-set-tz-environment-variable/,您可以使用tzselect 确定您想要的时区名称。

          我的灵感来自http://www.cyberciti.biz/faq/howto-set-date-and-time-timezone-in-freebsd/ 并将我的时区文件从/usr/share/zoneinfo/ 复制到/etc/localtime

          /etc/timezone 是一个带有时区名称的文本文件。所以我只是更新了它以匹配tzselect提供的值。

          【讨论】:

          • 我很确定您错过了原始帖子提到“Android”的部分。 # cd /etc/timezone cd: 不能 cd 到 /etc/timezone # cd /etc/localtime cd: 不能 cd 到 /etc/localtime
          • @SomeoneSomewhere,我认为您需要重新阅读我的帖子。 /etc/timezone 是一个文本文件,所以你不能 cd 到它。这是一个需要编辑的文件。 /etc/localtime 也是需要编辑的文本文件。
          • @SomeoneSomewhere,我还要说这肯定是在我的 Android 设备上,我已经扎根了。因此,您是否能够编辑这些文件可能取决于您是否已植根设备。
          • /etc/localtime 真的是文本文件吗?我认为这是指向 /usr/share/zoneinfo 中时区文件的链接。我不会编辑 /etc/localtime,而是尝试将其链接到正确的时区文件。
          猜你喜欢
          • 1970-01-01
          • 2015-11-04
          • 2011-08-08
          • 1970-01-01
          • 2012-03-24
          • 2012-02-28
          • 1970-01-01
          • 1970-01-01
          • 2013-06-14
          相关资源
          最近更新 更多