Android怎样修改系统时间

合集下载

修改系统时间和硬件时间

修改系统时间和硬件时间

修改系统时间和硬件时间1、手动同步时间★系统时间: linux系统的时间,一般说来就是我们执行 date 命令看到的时间•查看系统时间date•设置系统时间date -s "2023-01-02 18:06:00"★硬件时间: 主板上BIOS中的时间,由主板电池供电来维持运行。

系统开机时要读取这个时间,并根据它来设定系统时间•查看硬件时间hwclock -r•把系统时间写到硬件时间(如果硬件时间不对,下次重启后系统时间也会不对)hwclock -w•以硬件时间同步到系统时间(比较少用)hwclock -s2、时钟同步NTPD★时钟同步ntpd•查看服务器是否启用ps -ef |grep ntpd•查看时钟同步配置cat /etc/ntp.conf•查看时钟同步状态(每几秒同步)ntpstat•查看和时钟服务器的连接状态ntpq -premote:响应这个请求的NTP服务器的名称。

*表示当前选择的主服务器,+表示辅助服务器,-表示不合格的服务器,x表示服务器不可用。

refid:NTP服务器使用的上一级ntp服务器的IP地址st:远程NTP服务器的级别。

t:本地NTP服务器与远程NTP服务器的通信方式。

u:单播;b:广播;I:本地when:上次成功请求后到现在的秒数poll:本地NTP服务器与远程NTP服务器同步的时间间隔。

reach:这是一个八进制的值,用来测试衡量前八次查询是否成功和服务器连接。

377表示都成功,0表示不成功delay:网络延时,单位为微秒(μs)offset:本地NTP服务器与远程NTP服务器的时间偏移,单位为毫秒(ms)。

offset越接近于0,主机与NTP服务器的时间越接近jitter:查询偏差的分布值,用于表示远程NTP的网络延时是否稳定,单位为微秒(μs)。

•监控ntpq输出watch ntpq -p•立即进行时钟同步(方便查看输出是否报错)ntpdate -d2Jan17:35:14ntpdate[144109]:*********************************:48:09UTC 2018 (1)2 Jan 17:35:14 ntpdate[144109]: no servers can be used, exiting•手动时钟同步ntpdate -u 10.120.1.11•查看时区、日期时间、是否开启时钟同步、是否同步成功。

华为手机的时间设置和网络校时方法

华为手机的时间设置和网络校时方法

华为手机的时间设置和网络校时方法在日常使用中,手机的时间设置和校时是非常重要的,不仅能够确保我们准确掌握时间,还能保证一些应用和功能的正常运行。

作为一家知名的手机品牌,华为手机提供了简便易行的时间设置和网络校时方法,下面将为大家详细介绍。

一、时间设置方法华为手机的时间设置非常简单,用户可以按照以下步骤进行操作:1. 打开手机设置:在主屏幕上找到“设置”图标,点击进入设置界面。

2. 进入“系统与更新”:在设置界面中,向下滑动找到“系统与更新”选项,点击进入。

3. 找到“日期和时间”:在“系统与更新”界面中,找到“日期和时间”选项,点击进入。

4. 打开自动时间和时区:在“日期和时间”界面中,找到“自动时间和时区”选项,打开开关。

5. 设置时间格式:在“日期和时间”界面中,可以根据个人喜好选择时间格式,如12小时制或24小时制。

6. 设置日期和时间:在“日期和时间”界面中,可以手动设置日期和时间,点击相应选项进行修改。

通过以上步骤,用户可以轻松地设置华为手机的时间。

当手机连接到网络时,系统会自动从网络获取准确的时间,并进行校准。

二、网络校时方法除了手动设置时间外,华为手机还提供了网络校时功能,可以通过以下步骤进行操作:1. 打开手机设置:同样,在主屏幕上找到“设置”图标,点击进入设置界面。

2. 进入“系统与更新”:在设置界面中,向下滑动找到“系统与更新”选项,点击进入。

3. 找到“日期和时间”:在“系统与更新”界面中,找到“日期和时间”选项,点击进入。

4. 打开网络校时:在“日期和时间”界面中,找到“网络校时”选项,打开开关。

5. 自动校准时间:开启网络校时后,手机将自动从网络获取准确的时间,并进行校准。

通过以上步骤,用户可以使用华为手机的网络校时功能,确保手机时间的准确性。

这在一些特殊情况下尤为重要,例如跨时区旅行或者在不同网络环境下使用手机。

总结:华为手机提供了简单方便的时间设置和网络校时方法,用户可以根据个人需求选择手动设置时间或者开启网络校时功能。

android privateimeoptions 用法

android privateimeoptions 用法

android privateimeoptions 用法在使用 Android 设备时,我们经常需要更改其时间、日期和时区。

为了实现这一目的,我们通常会使用 `privateimeoptions` 这一API。

这个 API 允许我们在不重启设备的情况下更改系统时间、日期和时区。

在本文档中,我们将详细介绍 `privateimeoptions` 的用法。

一、概述`privateimeoptions` 是一个系统 API,允许应用程序在设备上更改系统时间、日期和时区,而无需重启整个设备。

通过使用此API,应用程序可以在用户交互的情况下动态更改这些设置,而无需重启应用程序或整个系统。

二、权限与使用条件要使用 `privateimeoptions`,您的应用程序需要以下权限:* `WRITE_SETTINGS`:允许您修改系统设置。

此外,您的应用程序需要在设备上获得其他权限才能访问时间和日期设置。

确保您的应用程序具有所需的权限后,才能使用`privateimeoptions`。

三、API使用方法要使用 `privateimeoptions`,您需要使用`Settings.System.putPrivateImeOptions` 方法。

这个方法接受以下参数:* 设置选项 ID:指定要更改的设置项的 ID。

通常,您可以使用系统提供的常量,如 `Settings.System.DATE_AND_TIME_SET`。

* 新的时间、日期或时区值:指定要设置的新值。

* 用户界面上下文:指定应用程序的上下文,以便在设置更改时显示适当的 UI。

下面是一个示例代码片段,演示如何使用`privateimeoptions`:```javaSettings.System.putPrivateImeOptions(context, // 应用程序上下文Settings.System.DATE_AND_TIME_SET, // 设置选项 ID"new_date_time_value", // 新时间、日期或时区值new Handler(Looper.getMainLooper()).post() // 在主线程上执行设置更改的操作);```请注意,上述代码只是一个示例,实际使用时可能需要进行错误处理和资源管理。

android timezone原理

android timezone原理

android timezone原理Android操作系统是目前最为流行的移动操作系统之一,它不仅拥有强大的功能和丰富的应用程序,还具有灵活的时区支持。

Android的时区功能是根据全球各地的位置和地区的不同来自动调整时间的功能。

本文将探讨Android时区的原理以及其如何实现自动调整时间的功能。

Android操作系统使用了一个叫做"tz"数据库的时区数据库来管理不同地区的时间。

这个数据库包含了全球各地的时区信息,包括时区的名称、偏移量、夏令时规则等。

Android系统将这些信息存储在设备中,并根据用户所在的地理位置来选择合适的时区进行时间调整。

Android系统通过与网络时间协议服务器进行通信,获取当前的时间信息。

当设备连接到互联网时,Android系统会自动与网络时间服务器进行同步,获取最新的时间信息。

根据设备所在的地理位置,Android系统会从"tz"数据库中选择合适的时区,并将获取的时间信息进行相应的调整,确保显示的时间与实际所在地的时间保持一致。

Android系统还提供了一些API接口,供开发者在应用程序中使用时区功能。

开发者可以通过这些接口获取当前设备所在的时区信息,或者根据需要设置特定的时区。

这些接口使得开发者可以根据时区信息来进行一些特定的操作,例如显示不同地区的时间、日期转换等。

Android的时区功能还支持夏令时调整。

夏令时是一种根据季节变化而进行的时间调整方式,目的是为了节约能源。

在夏令时开始和结束的时间点,Android系统会自动调整时间,确保用户看到的时间与实际所在地的时间保持一致。

Android的时区功能在全球范围内都得到了广泛应用。

无论用户身在何处,只要连接到互联网,Android系统都能够自动根据地理位置进行时间调整。

这使得用户不必手动调整时间或者担心时区差异带来的时间混乱问题。

总结来说,Android的时区功能是通过"tz"数据库和网络时间协议服务器来实现的。

十条Android系统优化技巧让安卓手机反应更流畅

十条Android系统优化技巧让安卓手机反应更流畅

十条Android系统优化技巧让安卓手机反应更流畅安卓手机作为当前最为广泛使用的智能手机操作系统,由于其开放性和自定义性受到了广大用户的喜爱。

然而,随着手机使用时间的增长,用户可能会发现手机反应速度变慢,卡顿现象频繁发生。

为了帮助用户优化安卓系统,本文将介绍十条Android系统优化技巧,帮助您的安卓手机保持流畅。

1. 清理缓存:安卓手机在使用过程中会产生大量的缓存文件,这些文件会占用存储空间并降低系统运行速度。

通过定期清理缓存,可以释放存储空间并提升手机反应速度。

进入手机设置-存储-缓存,清理缓存文件即可。

2. 关闭后台应用:安卓系统允许多个应用同时在后台运行,这会消耗手机的内存和处理器资源。

通过关闭不需要的后台应用,可以释放资源,提高系统反应速度。

长按多任务键或使用系统内存清理工具,选择关闭后台应用。

3. 禁用无用应用:安卓手机出厂时会预装一些应用程序,而用户并不一定需要或使用这些应用。

这些无用应用会占用系统资源,降低系统运行速度。

进入手机设置-应用管理,找到无用应用并选择禁用。

4. 优化动画效果:安卓系统默认开启了一些动画效果,如窗口动画和过渡动画。

这些动画效果会增加系统响应的延迟时间,可通过减少动画时间或关闭动画效果来提高系统反应速度。

进入手机设置-开发者选项,调整动画缩放比例或关闭动画效果。

5. 更新系统和应用:安卓系统和应用程序的更新通常会带来性能优化和bug修复。

确保你的系统和应用程序始终是最新版本,可以提升系统稳定性和反应速度。

进入手机设置-关于手机-系统更新,检查更新并按照提示进行更新。

6. 使用轻量级应用:一些应用程序在功能上虽然强大,但也常常伴随着高资源消耗。

选择使用轻量级应用,可以减少系统负担,提升系统反应速度。

在应用商店中搜索类似的轻量级应用,并替换原有应用。

7. 谨慎使用小部件:安卓手机上的小部件可以提供便捷的信息展示,但同时也会占用系统资源。

过多使用小部件会影响系统反应速度,建议在实际需要的情况下使用小部件,并及时清理不需要的小部件。

Android时间时区更新(nitz和ntp)

Android时间时区更新(nitz和ntp)

Android时间更新简介NITZ(Network Identity and Time Zone,网络标识和时区):可以理解为是运营商基站发送的消息,当手机有信号注册到网络之后,就会收到该消息用来更新时间和时区。

所以NITZ需要运营商网络支持(通过CS网络),目前国内电信、移动都支持NITZ方式更新时间日期,而联通目前不支持。

NTP(Network Time Protocol):此种方式是通过访问ntp服务器来更新时间的,所以需要手机可以上网,连接wifi或者开启数据连接都可以。

Ntp方式只能更新时间,无法更新时区。

NITZ1、触发条件NITZ消息是基站发送的,手机只能被动接收,一般在下面几种情况下会收到消息:(1)开机手机第一次注册到网络(运营商支持)。

(2)手机丢网再注网(例如开关下飞行模式)。

(3)从一个地方到另一个地方,小区基站信息发生变化。

我们在做测试时,可以通过前两种方式抓取log分析,log出现如下信息,证明nitz更新了时间和时区:2、更新流程Nitz的更新流程在ServiceStateTracker.java中实现,下图是个简易的更新流程图,具体实现可以看代码。

注:(1)时间更新时会调用wakeLock,即在更新时间期间保持CPU运行,防止休眠。

(2)插入联通卡不支持nitz,如何更新时区?还有一种方式,可以通过注册的mcc来确认当前所在国家,如果此国家只横跨一个时区,则就可以更新;所以此方式的缺陷是像中国、美国等横跨多个时区的国家,是无法确认准确时区的。

3、界面操作当用户进入设置选择从网络获取时间时,都是通过缓存机制立即更新时间和时区,不会走前文说的流程,一个是影响效率,一个是nitz是被动接收无法主动触发。

当收到nitz时,会更新以下几个全局变量:mSavedTimeZone:存储时区。

mSavedTime:存储通过nitz解析到的时间。

mSaveAtTime:从开机到收到nitz消息的这段时间。

怎样修复手机时间管理功能

怎样修复手机时间管理功能

怎样修复手机时间管理功能手机时间管理功能是现代手机的常见功能之一,它可以帮助我们准确地了解时间、计划任务和提醒事件。

然而,有时候我们可能会遇到手机时间管理功能无法正常工作的问题。

在本文中,我将介绍一些常见问题并提供相应解决方案来修复手机时间管理功能。

1. 无法正确显示当前时间如果你的手机时间管理功能无法正确显示当前时间,可能是因为以下原因:1.1. 时区设置错误在设置中检查你的手机时区设置是否正确。

如果时区设置错误,你的手机时间将不会与实际时间匹配。

要更正时区设置,只需按照以下步骤操作:1.打开手机设置。

2.搜索“日期和时间”或类似的选项。

3.点击进入日期和时间设置页面。

4.确保时区设置正确,并根据需要进行更正。

1.2. 自动时间设置错误如果你的手机时间管理功能没有将时间设置为自动更新,它可能无法正确显示当前时间。

要修复此问题,请按照以下步骤进行操作:1.打开手机设置。

2.搜索“日期和时间”或类似的选项。

3.点击进入日期和时间设置页面。

4.确保“自动设置日期和时间”选项已启用。

1.3. 系统时间错误有时,手机的系统时间可能会出现错误。

要修复此问题,请按照以下步骤进行操作:1.打开手机设置。

2.搜索“日期和时间”或类似的选项。

3.点击进入日期和时间设置页面。

4.禁用“自动设置日期和时间”选项。

5.手动调整日期和时间并确保设置正确。

2. 提醒事件无法正常触发如果你设置了提醒事件但没有收到通知或提醒,可能是以下原因造成的:2.1. 通知权限未启用手机应用通常需要获得通知权限才能触发提醒事件。

要修复此问题,请按照以下步骤进行操作:1.打开手机设置。

2.搜索“应用管理”或类似选项。

3.找到并点击你使用的时间管理应用。

4.确保通知权限已启用。

2.2. 静音模式或无声模式如果你的手机处于静音模式或无声模式,你将无法收到提醒通知。

要修复此问题,请按照以下步骤进行操作:1.在你的手机上查找音量按钮。

2.调整音量按钮以取消静音模式或无声模式。

Android通过源码编译apk获得系统权限

Android通过源码编译apk获得系统权限

Android通过源码编译apk获得系统权限Android通过源码编译apk获得系统权限/archives/android-source-code-compiled-by-apk-to-obtain-system-privileges.htmlAndroid中的应用程序如何获得系统权限?在 android 的API中有提供Sy stemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权限或者运行与系统进程中才可以用。

本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的。

第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:1. 在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"这个属性。

2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行3. 使用mm命令来编译,生成的apk就有修改系统时间的权限了。

第二个办法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译:eclipse源码编译,无需用make来编译(android源码目<D:\my android_mx27>):1、首先,AndroidManifest.xml中manifest节点中加入android:sharedUserId="android.uid.system"这个属性2、用eclipse编译出apk(ClockSetting.apk)文件,但这个文件不能用,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件3、使用当前android系统(android系统可能不同)的platform密钥来重新给apk文件签名(可能还未用用户米要签名)。

android修改状态栏时间和日期颜色

android修改状态栏时间和日期颜色

android修改状态栏时间和日期颜色条件:手机获取ROOT权限和安装R.E.管理器,刷入或安装好Recovery并备份,我是在死机后用Recovery N次恢复试验才成功的。

我的手机为华为c8500,/system/framework下有services.odex 和services.jar ,但services.jar里没有classes.dex,只有一个META-INF文件夹,但网上教程多数是修改services.jar里的classes.dex文件的。

下载并安装软件java jdk 7(java jdk1.7.0):网盘下载官网下载下载需要的软件工具包:BAT批处理.zip下载:ADB SHELL.RAR用R.E.管理器将/system下的framework整个文件夹复制出来放到电脑任意盘,将framework文件夹下的所有文件复制到如D盘下的名为abc 的文件夹,将BAT批处理.zip解压,把odex、dex转class.bat class转dex.bat smali.jar baksmali.jar 等所有文件都放到D盘abc文件夹里。

在abc文件夹里找到services.odex,把它拖到odex或dex转class.bat这个批处理文件图标上,就会生成一个out文件夹,里面就有要修改的文件。

(这个bat批处理可以将xxx.odex和xxx.dex反编译为class,odex文件需要framework下的文件,dex 反编译则不需要framework下的文件)修改时间颜色:文件位置在D:\abc\out\com\android\server\status\StatusBarIcon.smali直接进入out文件夹,搜索StatusBarIcon.smali 即可,用windows自带记事本打开,查找const/high16 v6, -0x100 (状态栏时间颜色是黑色才行)将const/high16 v6, -0x100 修改为const v6, -0x1-0x100为黑色, -0x1为白色,先试验白色,成功后修改什么颜色都可点记事本文件按钮,点保存,关闭记事本。

android 系统用户权限大全

android 系统用户权限大全

android uses-permission权限大全访问登记属性android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check -in数据库属性表的权限获取错略位置android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米获取精确位置android.permission.ACCESS_FINE_LOCATION,通过GPS芯片接收卫星的定位信息,定位精度达10米以内访问定位额外命令android.permission.ACCESS_LOCATION_EXTRA_COMMANDS,允许程序访问额外的定位提供者指令获取模拟定位信息android.permission.ACCESS_MOCK_LOCATION,获取模拟定位信息,一般用于帮助开发者调试应用获取网络状态android.permission.ACCESS_NETWORK_STATE,获取网络信息状态,如当前的网络连接是否有效访问Surface Fling er android.permission.ACCESS_SURFACE_FLINGER,Android平台上底层的图形显示支持,一般用于游戏或照相机预览界面和底层模式的屏幕截图获取WiFi状态android.permission.ACCESS_WIFI_STATE,获取当前WiFi接入的状态以及WLA N热点的信息账户管理android.permission.ACCOUNT_MANAGER,获取账户验证信息,主要为GMail账户信息,只有系统级进程才能访问的权限验证账户android.permission.AUTHENTICATE_ACCOUNTS,允许一个程序通过账户验证方式访问账户管理ACCOUNT_MANAGER相关信息电量统计android.permission.BATTERY_STATS,获取电池电量统计信息绑定小插件android.permission.BIND_APPWIDGET,允许一个程序告诉appWidget服务需要访问小插件的数据库,只有非常少的应用才用到此权限绑定设备管理android.permission.BIND_DEVICE_ADMIN,请求系统管理员接收者receiver,只有系统才能使用绑定输入法android.permission.BIND_INPUT_METHOD ,请求InputMethodService服务,只有系统才能使用绑定RemoteView android.permission.BIND_REMOTEVIEWS,必须通过RemoteViewsService服务来请求,只有系统才能用绑定壁纸android.permission.BIND_WALLPAPER,必须通过WallpaperService服务来请求,只有系统才能用使用蓝牙android.permission.BLUETOOTH,允许程序连接配对过的蓝牙设备蓝牙管理android.permission.BLUETOOTH_ADMIN,允许程序进行发现和配对新的蓝牙设备变成砖头android.permission.BRICK,能够禁用手机,非常危险,顾名思义就是让手机变成砖头应用删除时广播android.permission.BROADCAST_PACKAGE_REMOVED,当一个应用在删除时触发一个广播收到短信时广播android.permission.BROADCAST_SMS,当收到短信时触发一个广播连续广播android.permission.BROADCAST_STICKY,允许一个程序收到广播后快速收到下一个广播WAP PUSH广播android.permission.BROADCAST_WAP_PUSH,WAP PUSH服务收到后触发一个广播拨打电话android.permission.CALL_PHONE,允许程序从非系统拨号器里输入电话号码通话权限android.permission.CALL_PRIVILEGED,允许程序拨打电话,替换系统的拨号器界面拍照权限android.permission.CAMERA,允许访问摄像头进行拍照改变组件状态android.permission.CHANGE_COMPONENT_ENABLED_STATE,改变组件是否启用状态改变配置android.permission.CHANGE_CONFIGURATION,允许当前应用改变配置,如定位改变网络状态android.permission.CHANGE_NETWORK_STATE,改变网络状态如是否能联网改变WiFi多播状态android.permission.CHANGE_WIFI_MULTICAST_STATE,改变WiFi多播状态改变WiFi状态android.permission.CHANGE_WIFI_STATE,改变WiFi状态清除应用缓存android.permission.CLEAR_APP_CACHE,清除应用缓存清除用户数据android.permission.CLEAR_APP_USER_DATA,清除应用的用户数据底层访问权限android.permission.CWJ_GROUP,允许CWJ账户组访问底层信息手机优化大师扩展权android.permission.CELL_PHONE_MASTER_EX,手机优化大师扩展权限限控制定位更新android.permission.CONTROL_LOCATION_UPDATES,允许获得移动网络定位信息改变删除缓存文件android.permission.DELETE_CACHE_FILES,允许应用删除缓存文件删除应用android.permission.DELETE_PACKAGES,允许程序删除应用电源管理android.permission.DEVICE_POWER,允许访问底层电源管理应用诊断android.permission.DIAGNOSTIC,允许程序到RW到诊断资源禁用键盘锁android.permission.DISABLE_KEYGUARD,允许程序禁用键盘锁转存系统信息android.permission.DUMP,允许程序获取系统dump信息从系统服务状态栏控制android.permission.EXPAND_STATUS_BAR,允许程序扩展或收缩状态栏工厂测试模式android.permission.FACTORY_TEST,允许程序运行工厂测试模式使用闪光灯android.permission.FLASHLIGHT,允许访问闪光灯强制后退android.permission.FORCE_BACK,允许程序强制使用back后退按键,无论Acti vity是否在顶层访问账户Gmail列android.permission.GET_ACCOUNTS,访问GMail账户列表表获取应用大小android.permission.GET_PACKAGE_SIZE,获取应用的文件大小获取任务信息android.permission.GET_TASKS,允许程序获取当前或最近运行的应用允许全局搜索android.permission.GLOBAL_SEARCH,允许程序使用全局搜索功能硬件测试android.permission.HARDWARE_TEST,访问硬件辅助设备,用于硬件测试注射事件android.permission.INJECT_EVENTS,允许访问本程序的底层事件,获取按键、轨迹球的事件流安装定位提供android.permission.INSTALL_LOCATION_PROVIDER,安装定位提供安装应用程序android.permission.INSTALL_PACKAGES,允许程序安装应用内部系统窗口android.permission.INTERNAL_SYSTEM_W INDOW,允许程序打开内部窗口,不对第三方应用程序开放此权限访问网络android.permission.INTERNET,访问网络连接,可能产生GPRS流量结束后台进程android.permission.KILL_BACKGROUND_PROCESSES,允许程序调用killBack groundProcesses(String).方法结束后台进程管理账户android.permission.MANAGE_ACCOUNTS,允许程序管理AccountManager中的账户列表管理程序引用android.permission.MANAGE_APP_TOKENS,管理创建、摧毁、Z轴顺序,仅用于系统高级权限android.permission.MTWEAK_USER,允许mTweak用户访问高级系统权限社区权限android.permission.MTWEAK_FORUM,允许使用mTweak社区权限软格式化android.permission.MASTER_CLEAR,允许程序执行软格式化,删除系统配置信息修改声音设置android.permission.MODIFY_AUDIO_SETTINGS,修改声音设置信息修改电话状态android.permission.MODIFY_PHONE_STATE,修改电话状态,如飞行模式,但不包含替换系统拨号器界面格式化文件系统android.permission.MOUNT_FORMAT_FILESYSTEMS,格式化可移动文件系统,比如格式化清空SD卡挂载文件系统android.permission.MOUNT_UNMOUNT_FILESYSTEMS,挂载、反挂载外部文件系统允许NFC通讯android.permission.NFC,允许程序执行NFC近距离通讯操作,用于移动支持永久Activity android.permission.PERSISTENT_ACTIVITY,创建一个永久的Activity,该功能标记为将来将被移除处理拨出电话android.permission.PROCESS_OUTGOING_CALLS,允许程序监视,修改或放弃播出电话读取日程提醒android.permission.READ_CALENDAR,允许程序读取用户的日程信息读取联系人android.permission.READ_CONTACTS,允许应用访问联系人通讯录信息屏幕截图android.permission.READ_FRAME_BUFFER,读取帧缓存用于屏幕截图读取收藏夹和历史记录com.android.browser.permission.READ_HISTORY_BOOKMARKS,读取浏览器收藏夹和历史记录读取输入状态android.permission.READ_INPUT_STATE,读取当前键的输入状态,仅用于系统读取系统日志android.permission.READ_LOGS,读取系统底层日志读取电话状态android.permission.READ_PHONE_STATE,访问电话状态读取短信内容android.permission.READ_SMS,读取短信内容读取同步设置android.permission.READ_SYNC_SETTINGS,读取同步设置,读取Google在线同步设置读取同步状态android.permission.READ_SYNC_STATS,读取同步状态,获得Google在线同步状态重启设备android.permission.REBOOT,允许程序重新启动设备开机自动允许android.permission.RECEIVE_BOOT_COMPLETED,允许程序开机自动运行接收彩信android.permission.RECEIVE_MMS,接收彩信接收短信android.permission.RECEIVE_SMS,接收短信接收Wap Push android.permission.RECEIVE_WAP_PUSH,接收WAP PUSH信息录音android.permission.RECORD_AUDIO,录制声音通过手机或耳机的麦克排序系统任务android.permission.REORDER_TASKS,重新排序系统Z轴运行中的任务结束系统任务android.permission.RESTART_PACKAGES,结束任务通过restartPackage(String)方法,该方式将在外来放弃发送短信android.permission.SEND_SMS,发送短信设置Activity观察其android.permission.SET_ACTIVITY_WATCHER,设置Activity观察器一般用于m onkey测试设置闹铃提醒com.android.alarm.permission.SET_ALARM,设置闹铃提醒设置总是退出android.permission.SET_AL WAYS_FINISH,设置程序在后台是否总是退出设置动画缩放android.permission.SET_ANIMATION_SCALE,设置全局动画缩放设置调试程序android.permission.SET_DEBUG_APP,设置调试程序,一般用于开发设置屏幕方向android.permission.SET_ORIENTATION,设置屏幕方向为横屏或标准方式显示,不用于普通应用设置应用参数android.permission.SET_PREFERRED_APPLICATIONS,设置应用的参数,已不再工作具体查看addPackageT oPreferred(String) 介绍设置进程限制android.permission.SET_PROCESS_LIMIT,允许程序设置最大的进程数量的限制设置系统时间android.permission.SET_TIME,设置系统时间设置系统时区android.permission.SET_TIME_ZONE,设置系统时区设置桌面壁纸android.permission.SET_WALLPAPER,设置桌面壁纸设置壁纸建议android.permission.SET_WALLPAPER_HINTS,设置壁纸建议发送永久进程信号android.permission.SIGNAL_PERSISTENT_PROCESSES,发送一个永久的进程信号状态栏控制android.permission.STATUS_BAR,允许程序打开、关闭、禁用状态栏访问订阅内容android.permission.SUBSCRIBED_FEEDS_READ,访问订阅信息的数据库写入订阅内容android.permission.SUBSCRIBED_FEEDS_WRITE,写入或修改订阅内容的数据库显示系统窗口android.permission.SYSTEM_ALERT_WINDOW,显示系统窗口更新设备状态android.permission.UPDATE_DEVICE_STATS,更新设备状态使用证书E_CREDENTIALS,允许程序请求验证从AccountManage r使用SIP视频E_SIP,允许程序使用SIP视频服务使用振动android.permission.VIBRATE,允许振动唤醒锁定android.permission.WAKE_LOCK,允许程序在手机屏幕关闭后后台进程仍然运行写入GPRS接入点设置android.permission.WRITE_APN_SETTINGS,写入网络GPRS接入点设置写入日程提醒android.permission.WRITE_CALENDAR,写入日程,但不可读取写入联系人android.permission.WRITE_CONTACTS,写入联系人,但不可读取写入外部存储android.permission.WRITE_EXTERNAL_STORAGE,允许程序写入外部存储,如S D卡上写文件写入Google地图数据android.permission.WRITE_GSERVICES,允许程序写入Google Map服务数据写入收藏夹和历史记录com.android.browser.permission.WRITE_HISTORY_BOOKMARKS,写入浏览器历史记录或收藏夹,但不可读取读写系统敏感设置android.permission.WRITE_SECURE_SETTINGS,允许程序读写系统安全敏感的设置项读写系统设置android.permission.WRITE_SETTINGS,允许读写系统设置项编写短信android.permission.WRITE_SMS,允许编写短信写入在线同步设置android.permission.WRITE_SYNC_SETTINGS,写入Google在线同步设置。

校准北京时间的方法

校准北京时间的方法

校准北京时间的方法《校准北京时间的方法》嘿,朋友们!今天咱来说说怎么校准北京时间。

其实校准北京时间的办法挺简单的。

咱们先来说说用电脑校准。

您打开电脑,右下角不是有个时间显示嘛,您右键点一下,然后选“调整日期/时间”。

接着在跳出来的窗口里,您能看到“自动设置时间”和“手动设置时间”这两个选项。

要是您的电脑能联网,那就把“自动设置时间”给勾选上,这样电脑就会自己去跟网络上的北京时间校准啦。

要是自动校准不了,您就选“手动设置时间”,然后在里面输入准确的北京时间,点确定就行。

再来说说手机怎么校准。

一般情况下,手机的时间设置里也有自动校准的功能。

您进手机设置,找到“系统”或者“日期和时间”这类的选项,打开之后,把“自动确定日期和时间”还有“自动确定时区”都给打开,这样手机就能自己校准北京时间啦。

要是自动不行,您就手动去设置,选好北京时间和对应的时区就行。

还有个办法,就是打电话。

您拨打 12117,这是个报时电话,按照语音提示操作,就能听到准确的北京时间,然后您再照着去校准自己的设备。

咋样,校准北京时间是不是不难?您学会了吗?《校准北京时间的方法》朋友们,今天来给大家讲讲校准北京时间的法子!咱先说用网络校准。

现在好多网站都能提供准确的北京时间,您上网一搜“北京时间校准”,就能出来好多。

随便点进去一个,您就能看到准确的时间显示。

然后按照您的设备的操作方法去校准就行。

比如说电脑,您就照着刚才在网站上看到的时间,在电脑的时间设置里改过来。

再一个办法就是用电视。

不少电视频道都会在屏幕的角落里显示时间,而且一般都是准确的北京时间。

您瞅准了,然后去校准您的设备。

另外啊,有的手表也是能校准北京时间的。

那种智能手表,您在设置里找到和时间相关的选项,通常也会有自动或者手动校准的功能。

自动的话,只要手表能联网,就能自己校准。

手动的话,您就按照电视或者网站上看到的北京时间去设置。

校准北京时间的方法有很多,您挑一个自己觉得方便的就行。

手机系统时间与日期设置方法

手机系统时间与日期设置方法

手机系统时间与日期设置方法手机已经成为我们生活中不可或缺的一部分,它不仅仅是一个通信工具,还是我们记录生活、管理时间的工具。

而手机系统的时间与日期设置,对于我们的日常生活和工作也有着重要的影响。

在这篇文章中,我们将探讨手机系统时间与日期的设置方法,并提供一些实用的技巧。

一、系统时间设置手机系统时间的设置一般可以在“设置”或者“系统设置”中找到。

打开手机的设置界面,找到“日期与时间”选项,点击进入。

在这个界面上,可以看到当前的系统时间,并且可以进行设置。

1. 自动获取时间大多数手机系统都支持自动获取时间的功能。

在“日期与时间”选项中,可以看到一个“自动获取时间”的开关。

打开这个开关后,手机将会自动从网络上获取当前的时间,并进行更新。

这个功能非常方便,可以确保手机时间的准确性。

2. 手动设置时间如果你不想使用自动获取时间的功能,或者你的手机无法连接到网络,你可以选择手动设置时间。

在“日期与时间”选项中,关闭“自动获取时间”的开关,然后点击“设置时间”或者“手动设置时间”按钮。

在手动设置时间的界面上,你可以通过滑动数字或者输入数字的方式来设置小时、分钟和秒钟。

你还可以选择设置日期和星期几。

当你设置完成后,点击“确定”按钮即可保存设置。

二、时区设置除了设置系统时间,手机还支持设置时区的功能。

时区设置可以确保你的手机时间与你所在的地理位置相匹配,方便你进行日常生活和工作。

1. 自动获取时区大多数手机系统都支持自动获取时区的功能。

在“日期与时间”选项中,可以看到一个“自动获取时区”的开关。

打开这个开关后,手机将会自动从网络上获取当前的时区,并进行更新。

这个功能非常方便,可以确保手机时间与你所在的地理位置相符。

2. 手动设置时区如果你不想使用自动获取时区的功能,或者你的手机无法连接到网络,你可以选择手动设置时区。

在“日期与时间”选项中,关闭“自动获取时区”的开关,然后点击“设置时区”或者“手动设置时区”按钮。

Android使用dateset命令修改系统时间

Android使用dateset命令修改系统时间

Android使⽤dateset命令修改系统时间测试环境:android 7.1.1在adb shell中试图使⽤ date -s "yyyymmdd.[[[hh]mm]ss]"修改系统系统时间时,会提⽰ date: Unknown option s usage: date [-u] [-r FILE] [-d DATE] [+DISPLAY_FORMAT] [-D SET_FORMAT] [SET]Set/get the current date/time. With no SET shows the current date.Default SET format is "MMDDhhmm[[CC]YY][.ss]", that's (2 digits each)month, day, hour (0-23), and minute. Optionally century, year, and second.Also accepts "@UNIXTIME[.FRACTION]" as seconds since midnight Jan 1 1970.-d Show DATE instead of current time (convert date format)-D +FORMAT for SET or -d (instead of MMDDhhmm[[CC]YY][.ss])-r Use modification time of FILE instead of current date-u Use UTC instead of current timezone+FORMAT specifies display format string using these escapes:%% literal % %n newline %t tab%S seconds (00-60) %M minute (00-59) %m month (01-12)%H hour (0-23) %I hour (01-12) %p AM/PM%y short year (00-99) %Y year %C century%a short weekday name %A weekday name %u day of week (1-7, 1=mon)%b short month name %B month name %Z timezone name%j day of year (001-366) %d day of month (01-31) %e day of month ( 1-31)%s seconds past the Epoch%U Week of year (0-53 start sunday) %W Week of year (0-53 start monday)%V Week of year (1-53 start monday, week < 4 days not part of this year)%D = "%m/%d/%y" %r = "%I : %M : %S %p" %T = "%H:%M:%S" %h = "%b"%x locale date %X locale time %c locale date/timedate: Unknown option s根据提⽰,使⽤以下命令命令格式:date MMddHHmmyyyy.ss set(⽉⽇时分年.秒)例如:date 052514192019.22setdate只是修改了系统时间,还应该把系统时间同步硬件时钟,否则系统重启后,时间是不会保存的系统时间同步硬件时钟,可以⽤命令busybox hwclock -wbusybox hwclock 语法如下usage: hwclock [-rswtluf]-f FILE Use specified device file instead of /dev/rtc (--rtc)-l Hardware clock uses localtime (--localtime)-r Show hardware clock time (--show)-s Set system time from hardware clock (--hctosys)-t Set the system time based on the current timezone (--systz)-u Hardware clock uses UTC (--utc)-w Set hardware clock from system time (--systohc) 常⽤的是busybox hwclock -w --从系统时间设置到硬件时钟busybox hwclock -s --从硬件时钟设置到系统时间Android代码(Android系统需要能获取root权限)/*** 执⾏Android命令* @param cmd 命令*/private static void execSuCmd(String cmd) {Process process = null;DataOutputStream os = null;DataInputStream is = null;try {process = Runtime.getRuntime().exec("su");os = new DataOutputStream(process.getOutputStream()); os.writeBytes(cmd + "\n");os.writeBytes("exit\n");os.flush();int aa = process.waitFor();is = new DataInputStream(process.getInputStream());byte[] buffer = new byte[is.available()];is.read(buffer);String out = new String(buffer);} catch (Exception e) {e.printStackTrace();} finally {try {if (os != null) {os.close();}if (is != null) {is.close();}if (process != null){process.destroy();}} catch (Exception e) {}}}调⽤⽰例String curr_time = “052514412019.52”;execSuCmd("date " + curr_time+ "\n busybox hwclock -w\n");。

android修改系统时区

android修改系统时区

android修改系统时区动态注册⼴播接收器必须有实例存在静态不要实例存在设置系统时区:AlarmManager mAlarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); mAlarmManager.setTimeZone("GMT+08:00");设置时区需要在manifest.xml中增加如下权限:<!-- 允许设置时区--><uses-permission android:name="android.permission.SET_TIME_ZONE" />package com.lzh.modeify;import java.util.Calendar;import java.util.Timer;import android.R.integer;import android.app.Service;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.IBinder;import android.util.Log;public class ZoneService extends Service {private static final String ACTION_DATE_CHANGED = Intent.ACTION_DATE_CHANGED;private static final String ACTION_TIME_CHANGED = Intent.ACTION_TIME_CHANGED;private BroadcastReceiver TimerChangered = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {Calendar c = Calendar.getInstance();// 可以对每个时间域单独修改// int year = c.get(Calendar.YEAR);// int month = c.get(Calendar.MONTH);// int date = c.get(Calendar.DATE);int hour = c.get(Calendar.HOUR_OF_DAY);int minute = c.get(Calendar.MINUTE);int second = c.get(Calendar.SECOND);Log.v("time", Integer.toString(hour)+Integer.toString(minute)+Integer.toString(second));}};private BroadcastReceiver stopServiceReceiver = new BroadcastReceiver() {public void onReceive(android.content.Context context, Intent intent) {ZoneService.this.stopSelf();ZoneService.this.unregisterReceiver(stopServiceReceiver);};};@Overridepublic void onCreate() {super.onCreate();Log.i("liujun", "后台进程被创建。

Android的时间更新

Android的时间更新

Android的时间更新分成2种,一种是走运营商协议的NITZ,另外一种是走网络时钟的SNTP。

1.SNTP:SNTP的逻辑主要分布在NetworkTimeUpdateService。

它通过监听ACTION_NETWORK_SET_TIME,ACTION_NETWORK_SET_TIMEZONE这两个事件来判断最近一段时间内是否有NITZ的时间已经被更新过;它通过监听ConnectivityManager的触发事件来判断WIFI网络的连接,以此来触发网络事件的更新。

PS:1. NtpTrustedTime class来真正的实施从网络侧获取SNTP的时间。

2.AlarmManager来实施定时重查机制。

2.NITZ:根据代码,NITZ需要运营商支持,通过TOD时间信息同步法进行时间同步。

TOD,是指于“短波跳频通信”的一种基于精确时钟的同步法。

“时间信息”包含了跳频的状态信息和时间信息,状态信息是指伪随机码(PN)发生器的实时码序列状态;时间信息是指实时时钟信息,即年、月、日、时、分、秒、毫秒、微秒、毫微秒等的精确时间。

根据这些信息,就实现运营商网络侧和手机modem侧的时间同步。

3.Qualcomm 在android系统bootup的时候启动一个time_daemon的守护进程。

目前米2的qualcomm的实现是通过time_daemon的进程,来维护一个从modem获取时间,更新RTC的方法。

第一部分,Time_daemon的初始化以及其和modem的时间同步Time_daemon初始化:第一步,首先通过genoff_init_config来初始化一些基本设置。

这个初始化做了以下2件事情,其通过ats_rtc_init来初始化ats_bases[0],也就是和RTC 相关的内容。

具体做法是从/dev/rtc0中来获取RTC的值,并转换成UTC的milliseconds 之后,将其存入到time_genoff_ptr这个结构的generic_offset里面去。

Android MTK开发时区修改

Android MTK开发时区修改

[FAQ06455] 【Zone】如何添加一个新的时区问题描述:有些项目需要出货到海外,比如非洲的一些国家,目前的版本中这些国家没有单独的时区,而是使用的如非洲东部时间,非洲标准时间等,为了提高当地用户体验,需要在setting菜单中增加一个时区,比如为出货到尼日尼亚的手机增加时区尼日尼亚拉各斯。

解决方案:以加入Nigeria时区为例,应该如下修改:1.找到该国家在zoneinfo中的时区信息。

时区信息的文件可以从ftp://munnari.oz.au/pub/下载到最新的,解压tzdata 201x*.tar.gz后,在每个地区的txt文件中有城市的时区信息,搜索是否有您要添加的城市,则该时区可以添加;如果没有搜索到相关的国家或城市,则需要考虑使用别的城市的时区。

比如在africa.txt中搜索Nigeria,可以找到下面的内容:# Nigeria# Zone NAME GMTOFF RULES FORMAT [UNTIL]Zone Africa/Lagos 0:13:36 - LMT 1919 Sep1:00 - WAT这样可以看到,尼日利亚只有一个城市可以作为时区ID,这个ID就是Africa/ Lagos。

2.修改packages/apps/Settings/res/xml-xx-xx/timezones.xml (xx-xx表示不同的语言和区域),添加下面的内容:<!-- timezones.xml 用于在setting中增加一个时区设置项 --><timezone id="Africa/Lagos">Lagos</timezone>3.修改framework/base/core/res/res/xml/time_zones_by_country.xml,添加下面的内容<!--time_zones_by_country.xml 这个用于自动匹配时区时使用,通过cou ntry code找一个时区 --><!-- Nigeria, 1:00 --><timezone code="ng">Africa/Lagos</timezone><!-- 这里的code="ri"表示国家代码,比如中国对应cn,美国对应us,不清楚可以维基百科查询ISO_3166-1-->这是添加一个时区的步骤,如果要添加多个时区,请重复或批量执行以上步骤。

Android实现显示系统实时时间

Android实现显示系统实时时间

Android实现显⽰系统实时时间Android显⽰系统实时时间的具体代码,供⼤家参考,具体内容如下获取系统当前时间 System.currentTimeMillis();需要开启⼀个线程,我们通过Handler来实现实时更新时间效果图Activity.xml代码<TextViewandroid:id="@+id/real_time"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="-- --"/>MainActivity代码@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);real_time=findViewById(R.id.real_time);Startthread();}//开启⼀个⼦线程private void Startthread(){new Thread(){@Overridepublic void run() {do {try {Thread.sleep(1000);Message message=new Message();message.what=1;handler.sendMessage(message);} catch (InterruptedException e) {e.printStackTrace();}}while (true);}}.start();}//在主线程中进⾏数据处理private Handler handler=new Handler(){@Overridepublic void handleMessage(@NonNull Message msg) {switch (msg.what){case 1:long time = System.currentTimeMillis();CharSequence format = DateFormat.format("hh:mm:ss yyyy-MM-dd", time);real_time.setText(format);break;}}};以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

android默认系统日期、时间、时区更改之1

android默认系统日期、时间、时区更改之1

android默认系统日期、时间、时区更改之1做android平台,经常会遇到产品需要更改系统默认时区日期时间的问题。

android更改时区相对比较容易实现,网上也有很多资料,直接设置一个属性即可,例如设置上海东八区,persist.sys.timezone=Asia/Shanghai。

但是如何实现更改默认系统时间呢?在android中,Linux内核中、rtc时钟,默认的起始日期都是1970年1月1日,那么如何把默认日期指到2012-01-01呢?笔者在实践中发现,在RTC驱动中可以很容易实现。

在RTC驱动加载的时候,一般都有个probe函数需要先执行,因此在probe函数里下手最直接有效。

RTC从1970-01-01开始,那当然很容易把默认值设置到2012-01-01,所需要设置的seconds也就是从1970-01-01所差的秒数,以秒为单位。

因此,一旦读出来的RTC值小于我们预想的值比如2012-01-01(1325402913)小,我们就把它设置到这个时间点。

1.seconds = rtc_read_time();2.printk("init PMU/RTC time to %ld \n", seconds);3.4.if(seconds <= 1325402913) {5.seconds = 1325402913;/*2012-01-01*/6.ret = rtc_set_time(seconds);7.RTC_DBG("Init Set time: %ld, ret =0x%x\n", seconds, ret);8.}笔者通过结果显示,在android平台上是可行的。

要设置到哪天几点几分,只要算好具体1970-01-01 00:00差的秒数即可,简单明了。

这样客户、用户使用起来更方便一些。

手机怎样调时间管理

手机怎样调时间管理

手机怎样调时间管理在日常生活中,手机已成为我们不可或缺的伙伴之一。

除了通信和娱乐功能之外,手机还能帮助我们管理时间,在这个快节奏的时代获得更好的时间安排与利用。

本文将介绍如何通过手机进行时间管理。

1. 设置手机时间手机的时间设置通常会自动与网络同步,但有时候可能会出现时间不准确的情况。

为了确保手机的时间准确,可按照以下步骤进行设置:•打开手机的设置菜单。

•找到日期和时间选项。

•开启“自动确定日期和时间”选项,手机将自动与网络同步时间。

•如果自动同步时间不可用,可以手动设置时间,注意选择正确的时区。

2. 使用手机闹钟和提醒功能手机闹钟和提醒功能是进行时间管理的重要工具。

通过设置闹钟和提醒,可以帮助我们记住重要的事情和约会,提醒我们准时完成任务。

以下是使用手机闹钟和提醒功能的步骤:•打开手机上的闹钟或提醒应用。

•创建新的闹钟或提醒。

•设置闹钟或提醒的时间、重复模式和铃声。

•添加描述或备注,以便提醒自己任务的具体内容。

•完成设置后,点击保存或确认。

3. 使用日历应用进行时间规划手机上的日历应用是一种强大的工具,用于时间规划和管理。

通过使用日历应用,我们可以创建事件、安排任务和提醒,并将它们与我们的日程相连接。

以下是使用手机日历应用进行时间规划的步骤:•打开手机上的日历应用。

•创建新的事件或任务。

•设置事件或任务的日期、时间和地点。

•添加描述或备注,以便了解任务的目的和细节。

•完成设置后,点击保存或确认,该事件或任务将添加到日历中。

4. 使用时间管理应用除了手机自带的闹钟和日历应用外,还有许多专门用于时间管理的应用程序可供选择。

这些应用可以帮助我们更好地管理时间、提高效率,以及记录完成的任务。

以下是一些受欢迎的时间管理应用:•ToDoist:一个功能强大的任务管理应用,可帮助用户创建和组织任务,设置提醒,并跟踪任务进度。

•Any.do:一个简单易用的任务管理应用,提供任务列表、提醒功能和日程安排。

•Trello:一个项目管理工具,可用于创建任务、分配任务和跟踪任务进度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的。
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
1. 在应用程序的AndroidManifest.xml中的manifest节点中加入
android:sharedUserId="android.uid.system"这个属性。
signApk.jar 这个包,可以自行打jar 包或者下载我这个jar 包都是可以的,下载地址:signapk 请自行将后缀名改为.jar 格式,把此jar 包放于F:\sign 文件内,打开dos 操作界面,定们到F:\sign,如下:,接着输入如下命令:java -jar signapk.jar platform.x509.pem platform.pk8 test.apk testnew.apk ,在dos 命令名如下图:,其中set.apk 是指我们要签名的原始文件apk,后面setnew.apk 是指我们签名后输出的apk文件的名称
用法为"signapk platform.x509.pem,
文件名最好使用绝对路径防止找不到,也可以修改源代码直接使用。
这样最后得到的apk和第一个方法是一样的。
最后解释一下原理,首先加入android:sharedUserId="android.uid.system"这个属性。通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,这样就有权限来修改系统时间了。
最最后还说下,这个android:sharedUserId属性不只可以把apk放到系统进程中,也可以配置多个APK运行在一个进程中,这样可以共享数据,应该会很有用的。
先进入 Android 源码目录 F:\android_source\build\target\product\security ,具体机器目录自己选择。找到 【platform.pk8】和【platform.x509.pem】这两个文件,这里为了方便将它们复制到根目录,如:F:\sign 文件夹内,本来下一步就是需要打包jar 包了,不过里我们在android系统的源码内找到 out 编绎目录下
2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
3. 使用mm命令来编译,生成的apk就有修改系统时间的权限了。
第二个方法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译:
1. 同上,加入android:sharedUserId="android.uid.system"这个属性。
Android中如何修改系统时间(应用程序获得系统权限)
在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权限或者运行与系统进程中才可以用。
Tip:不要忘了在你的manifest文件下注册android:sharedUserId="android.uid.system" 。
如果你照着如上的步骤一步一步写的话,保证可以成功修改系统的时间或者日期等操作。
这也有一个问题,就是这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到platform.pk8和platform.x509.pem两个文件。要是别家公司做的Android上连安装都安装不了。试试原始的Android中的key来签名,程序在模拟器上运行OK,不过放到G3上安装直接提示"Package ... has no signatures that match those in shared user android.uid.system",这样也是保护了系统的安全。
Tip:在签名的时候必须将set.apk事先用rar 文件打开,进入META-INF目录下,将CERT.SF和CERT.RSA这两个文件删除掉,再执行如上操作。到了这一步,程序己经可以正常安装了。
如果提示 FaiLure [INSTALL_FAILED_ALREADY_EXISTS],请使用如下命令,将应用程序移除:,uninstall 后面字符是指应用程序所在的包名,再运行adb install [package name] 就可以安装成功。
2. 使用eclipse编译出apk文件,但是这个apk文件是不能用的。
3. 用压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。
4. 使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦,
首先找到密钥文件,在我的Android源码目录中的位置
是"build\target\product\security",下面的platform.pk8和platform.x509.pem
两个文件。
然后用Android提供的Signapk工具来签名,signapk的源代码是
在"build\tools\signapk"下,
只是加入UID还不够,如果这时候安装APK的话发现无法安装,提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platform key,就是上面第二个方法提到的platform.pk8和platform.x509.pem两个文件。用这两个key签名后apk才真正可以放入系统进程中。第一个方法中加入LOCAL_CERTIFICATE := platform其实就是用这两个key来签名。
相关文档
最新文档