1、概括来说就是一把锁配一把钥匙!(*^__^*)嘻嘻……
2、修改Android.mk文件,加入LOCAL_CERTIFICATE:=platform这一行
3、首先把APKEditor安装到安卓手机上,然后打开它,选择第二个选项:选择一个应用作为APK,然后找到需要修改名称和图标的应用。
4、一般手机安装软件是需要验证签名的同一个软件签名不一致或者某一个自己写/更改的软件没有签名都是安装不上的mt管理器的apk签名是用来给自己写的安卓软件或者更改其他人的软件之后签名用的
5、使用mm命令来编译,生成的apk就有修改系统时间的权限了。
6、第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
7、android:sharedUserId="android.uid.system"这个属性。
8、然后用Android提供的Signapk工具来签名,signapk的源代码是
9、使用特殊的key签名可以获取到一些不同的权限。
10、使用eclipse编译出apk文件,但是这个apk文件是不能用的。
11、可以用签名工具来更改。比如手机签名工具ZipSigner2,可以对手机上的文件进行直接签名,支持apk、zip及jar格式,方便刷机或汉化的朋友。有些爱好修改安卓apk软件的用户有时候需要对apk文件进行修改,但是如果在电脑上操作的话,打包签名是十分复杂的,还必须安装java环境,可以说打包一个包是十分麻烦的,这款签名工具可以解决上述遇到的问题。
12、文件名最好使用绝对路径防止找不到,也可以修改源代码直接使用。
13、这也有一个问题,就是这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到platform.pk8和platform.x509.pem两个文件。要是别家公司做的Android上连安装都安装不了。试试原始的Android中的key来签名,程序在模拟器上运行OK,不过放到G3上安装直接提示"Package...hasnosignaturesthatmatchthoseinshareduserandroid.uid.system",这样也是保护了系统的安全。
14、用压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。
15、第二个方法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译:
16、apk签名相当于程序的身份识别代码:
17、最后解释一下原理,首先加入android:sharedUserId="android.uid.system"这个属性。通过SharedUserid,拥有同一个Userid的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,这样就有权限来修改系统时间了。
18、是"build\target\product\security",下面的platform.pk8和platform.x509.pem
19、签名软件一般用于程序编译打包之后,手机在运行程序之前会先去验证程序的签名(可以看作类似于我们电脑上常说的md5)是否合法,只有通过了验证的文件才会被运行,所以签名软件的作用的让文件通过手机的验证为合法,不同的手机、系统是对应不同的签名的,这个新生成的apk文件就是带有签名文件的程序,和原来的其实是一样的,不同的是他是合法的程序。
20、最后还说下,这个android:sharedUserId属性不只可以把apk放到系统进程中,也可以配置多个APK运行在一个进程中,这样可以共享数据,应该会很有用的。
21、本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的。
22、在应用程序的AndroidManifest.xml中的manifest节点中加入
23、首先找到密钥文件,在我的Android源码目录中的位置
24、方法一:命令行下对apk签名(原理)创建key,需要用到keytool.exe(位于jdk1.6.0_24\\jre\\bin目录下),使用产生的key对apk签名用到的是jarsigner.exe(位于jdk1.6.0_24\\bin目录下),把上两个软件所在的目录添加到环境变量path后,打开cmd输入D。
25、用法为"signapkplatform.x509.pemplatform.pk8input.apkoutput.apk",
26、apk文件是安卓智能手机应用程序的安装文件,放在手机里执行或者通过电脑上手机助手安装
27、有些爱好修改安卓apk软件的用户有时候需要对apk文件进行修改,但是如果在电脑上操作的话,打包签名是十分复杂的,还必须安装java环境,可以说打包一个包是十分麻烦的,这款签名工具可以解决上述遇到的问题。
28、在"build\tools\signapk"下,
29、两种方式,一种开发工具eclipse,还有就是用apktool工具。I、只要RunAsAndroidApplication过,到工作目录的bin文件夹下就能找到与项目同名的apk文件。II、A.选中项目,右键=》AndoidTools=》ExportUnsignedApplicationPackage,直接保存,未签名的。B.选中项目,右键=》AndoidTools=》ExportSignedApplicationPackage,后面一步步的去做,签过名的。APK签名主要有两种:
30、这样最后得到的apk和第一个方法是一样的。
31、一般手机安装软件是需要验证签名的同一个软件签名不一致或者某一个自己写/更改的软件没有签名都是安装不上的mt管理器的apk签名是用来给自己写的安卓软件或者更改其他人的软件之后签名用的apk签名相当于程序的身份识别代码:apk签名用于程序编译打包之后,手机在运行程序之前会先去验证程序的签名(可以看作类似于我们电脑上常说的md5)是否合法,只有通过了验证的文件才会被运行,所以签名软件的作用的让文件通过手机的验证为合法,不同的手机、系统是对应不同的签名的。可以用签名工具来更改。比如手机签名工具ZipSigner2,可以对手机上的文件进行直接签名,支持apk、zip及jar格式,方便刷机或汉化的朋友。
32、apk签名用于程序编译打包之后,手机在运行程序之前会先去验证程序的签名(可以看作类似于我们电脑上常说的md5)是否合法,只有通过了验证的文件才会被运行,所以签名软件的作用的让文件通过手机的验证为合法,不同的手机、系统是对应不同的签名的。
33、同上,加入android:sharedUserId="android.uid.system"这个属性。
34、只是加入UID还不够,如果这时候安装APK的话发现无法安装,提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platformkey,就是上面第二个方法提到的platform.pk8和platform.x509.pem两个文件。用这两个key签名后apk才真正可以放入系统进程中。第一个方法中加入LOCAL_CERTIFICATE:=platform其实就是用这两个key来签名。
35、两个文件。
36、在android的API中有提供SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unabletoopenalarmdriver:Permissiondenied".这个函数需要root权限或者运行与系统进程中才可以用。
37、使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦,
38、APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。