怎么解除安卓软件 APK的时间限制
在 android 的API中有提供 SystemClock.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来编译:
1. 同上,加入android:sharedUserId="android.uid.system"这个属性。
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"下,
用法为"signapk platform.x509.pem platform.pk8 input.apk output.apk",
文件名最好使用绝对路径防止找不到,也可以修改源代码直接使用。
这样最后得到的apk和第一个方法是一样的。
最后解释一下原理,首先加入android:sharedUserId="android.uid.system"这个属性。通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,这样就有权限来修改系统时间了。
只是加入UID还不够,如果这时候安装APK的话发现无法安装,提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platform key,就是上面第二个方法提到的platform.pk8和platform.x509.pem两个文件。用这两个key签名后apk才真正可以放入系统进程中。第一个方法中加入LOCAL_CERTIFICATE := platform其实就是用这两个key来签名。
这也有一个问题,就是这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到platform.pk8 和platform.x509.pem两个文件。要是别家公司做的Android上连安装都安装不了。试试原始的Android中的key来签名,程序在模拟器上运行OK,不过放到G3上安装直接提示"Package ... has no signatures that match those in shared user android.uid.system",这样也是保护了系统的安全。
最后还说下,这个android:sharedUserId属性不只可以把apk放到系统进程中,也可以配置多个APK运行在一个进程中,这样可以共享数据,应该会很有用的。
本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的。
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
1. 在应用程序的AndroidManifest.xml中的manifest节点中加入
android:sharedUserId="android.uid.system"这个属性。
2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
3. 使用mm命令来编译,生成的apk就有修改系统时间的权限了。
第二个方法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译:
1. 同上,加入android:sharedUserId="android.uid.system"这个属性。
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"下,
用法为"signapk platform.x509.pem platform.pk8 input.apk output.apk",
文件名最好使用绝对路径防止找不到,也可以修改源代码直接使用。
这样最后得到的apk和第一个方法是一样的。
最后解释一下原理,首先加入android:sharedUserId="android.uid.system"这个属性。通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,这样就有权限来修改系统时间了。
只是加入UID还不够,如果这时候安装APK的话发现无法安装,提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platform key,就是上面第二个方法提到的platform.pk8和platform.x509.pem两个文件。用这两个key签名后apk才真正可以放入系统进程中。第一个方法中加入LOCAL_CERTIFICATE := platform其实就是用这两个key来签名。
这也有一个问题,就是这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到platform.pk8 和platform.x509.pem两个文件。要是别家公司做的Android上连安装都安装不了。试试原始的Android中的key来签名,程序在模拟器上运行OK,不过放到G3上安装直接提示"Package ... has no signatures that match those in shared user android.uid.system",这样也是保护了系统的安全。
最后还说下,这个android:sharedUserId属性不只可以把apk放到系统进程中,也可以配置多个APK运行在一个进程中,这样可以共享数据,应该会很有用的。
佚名
2024-06-16 16:19:33
类似问题(10)
-
佚名2024-06-16 03:45:42
问有人会修改安卓apk应用名称吗?就是安装成功后出现的软件名字变成不是原软件安装后的名称。
答用mt管理(必须root)先找到你要修改的软件(你吧软件安装或者下载到哪里就在哪里找,
-
佚名2024-06-16 18:57:05
问安卓手机怎么修改软件的名字。
答软件名是由开发商设置好的,用户无法更改应用命,但是如果是为了美观,可以下载一个360桌面或是其他专业的桌面软件,可以在主菜单自定义软件名。
-
佚名2024-06-16 05:32:28
问【有偿】帮我修改一个安卓apk软件,软件名字和图标
答1,这种可以自己上网看下,就是比较简单的,可以自己直接看下,2,用数据线连好手机和电脑,打开手机的USB调试,在应用宝的工具箱里就能直接搞定了,也是比较省事的呢...
-
佚名2024-06-16 06:31:05
问【有偿】帮我修改一个安卓apk软件,软件名字和图标。
答私-=、信中已回复。或者你把文件上传至网盘后共享。
-
佚名2024-06-16 10:01:21
问安卓软件 es文件浏览器如何更改文件读写权限
答操作-属性-更改权限 (这个要打开下面三项,才能显示更改权限)但首先你要在设置里打开1.上向到要目录--开2.root浏览器--开3.装载文件系统--开
-
佚名2024-06-16 20:51:07
问怎么破解软件 安卓的
答Lucky Patcher,中文名:幸运破解器。它的作者是来自战斗民族破解大神Chelpu。说到此人,你可能不是很了解他,但是此人在安卓界可是一位名人,大名鼎鼎...
-
佚名2024-06-16 19:37:33
问一款安卓手机WIFI的破解软件
答你可以用91手机助手把你同事的软件给导出来 确定是可以破解码 如果实在不行就用幻影WIFI破解吧 就是费时间 我到现在还没有见过...
-
佚名2024-06-16 08:00:00
问电脑下载的安卓软件怎么安装在手机里?
答方法一:电脑登录QQ,手机登录相同QQ,电脑选择传文件到手机,手机QQ接收后安装即可。方法二:手机通过数据线连接电脑,将文件从电脑转入手机,手机再安装即可。方法...
-
佚名2024-06-16 08:00:00
问不同的安卓系统,内置软件怎么移植?
答有的软件直接复制过去即可有的软件不能直接用
-
佚名2024-06-16 08:00:00
问找一个可以看动漫的TV版app 安卓的APK软件
答我推荐你去下载一个应用宝,在这里面有你想要的任何的游戏、软件,它是目前使用人数最多的应用平台。操作界面清晰简洁,让人一目了然。分为手机端和电脑端,你分别下载后就...
风水
起名
网名
- 1 一些游戏网名
- 2 蜡粉网名蜡馆
- 3 qq网名简短男
- 4 属猪的男孩取昵称
- 5 宝贝 昵称 法语
- 6 王亭文快手昵称
- 7 微信能打出来的图案昵称
- 8 什么值得买改昵称
- 9 B站ID昵称大全
- 10 扣扣昵称带 雪 的3个字