<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:sharedUserId="android.uid.system">
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:allowClearUserData="false" android:process="system"
android:killAfterRestore="false">
这样应该可以了,我也是仿照那些不能被杀死的系统应用的AndroidManifest.xml写的,源码环境编译能通过,eclipse没试过
Android中如何修改系统时间(应用程序获得系统权限)
在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权限或者运行与系统进程中才可以用。
本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的。
在windows平台通过eclipse编译android源码中,如果编译Settings或者android manifest XML中 shared user id 包含android.uid.shared等系统权限的时候,则会报以下错误。
Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE
Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
INSTALL_FAILED_UPDATE_INCOMPATIBLE
1、由于卸载没有完全,可以使用设置中卸载相应应用,或者adb uninstall com.android.***
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
主要是由于使用了android.uid.shared导致的问题。
第一个方法简单点,不过需要在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 argetproductsecurity",下面的platform.pk8和platform.x509.pem
两个文件。
然后用Android提供的Signapk工具来签名,signapk的源代码是
在"build oolssignapk"下,
用法为"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运行在一个进程中,这样可以共享数据,应该会很有用的。
如何将系统的密钥制作成keystore文件,用在eclipse下,直接使用。
命令如下:
生成.pem文件
openssl pkcs8 -inform DER -nocrypt -in testkey.pk8 -out testkey.pem -nocrypt
生成.pk12文件
openssl pkcs12 -export -in testkey.x509.pem -out testkey.p12 -inkey testkey.pem -password pass:android -name testkey
生成keystore文件
keytool -importkeystore -deststorepass android -destkeystore ./testkey.keystore -srckeystore ./testkey.p12 -srcstoretype PKCS12 -srcstorepass android
最后使用eclipse导出apk时使用这个签名即可(前提:这个工程可以使用Eclipse导出)
分享到:
相关推荐
APK信息APK-Info是一个Windows工具,用于获取有关apk文件的详细信息。 该应用最初由ZoSTeR创建,并发布在然后由jazzruby更新,这是的然后由bovirus更新,这是的 允许您查看: 应用程序图标包裹名字名称(所有语言) ...
Windows版本 Android Apk签名工具
如果你需要开发一个带有系统...给apk加上开发者签名(jks文件),使用keytool-importkeypair 对jks文件进行系统签名,在出包的时候,直接使用带有系统签名的jks对apk进行签名,这样编译生成的apk文件就自带系统签名了
用于Android的APK签名,能够使用系统权限,Android系统签名
资料下载特征资源经理图标编辑器标题编辑器图片编辑器代码编辑器清单编辑器权限编辑器APK签名者APK优化器APK安装程式汇编要求Qt 5 C ++ 11编译器配置APK Editor Studio依赖于此存储库中未包含的多个第三方二进制工具...
/*******************README***...1. 执行如下命令系统签名apk input.apk 需要签名的apk output.apk 签名后输出的apk sudo ./sign.sh input.apk output.apk /**************************************************/
通过重新签名Apk,使之获得系统权限,无需在服务器上来进行编译
Android 系统签名文件,最高层级的签名文件,解决无签名,无权限问题
可以利用此工具对自己开发的apk进行系统签名
好用的APK反编译工具,可以执行系统签名
(6)CMD窗口中输入12,apk签名,你可以看到place-apk-here-for-modding文件夹里面出现了一个singedXXX.apk,这样就可以拿过来安装了 (7)如果你手机连接着数据线可以在CMD窗口中输入6,直接用adb安装编辑好的apk...
开心的java超级签名系统,别人发的我也不知道那个版本了,这个java版当是别人1W多买的,java的不会搞就没搭建了,所以你也别来问我怎么搭建和演示了,截图是源码里的模板图,源码里附带部署说明。有需要的自行下载。...
给apk进行系统签名,特别是对于一些进行破解软件进行签名,使其可以装入设备
复制apk无法安装简单修复签名工具apk 看到别人手机里好的系统软件,想要复制来安装,就必须使用它! 一、下载附件,安装 手机签名工具 ZipSigner.APK 二、选择需要签名的APK文件,在电脑上右键--打开方式--选择程序...
具有apk源码,同样是具备系统权限的,当我们将apk源码导入Eclipse中,使用 Run as --> Android application 编译安装APK时, ...使用这种方法,可以快速而方便地对APK进行系统签名,并将其安装到我们的Android设备上
从android源码中生成系统签名文件,使用系统签名生成系统权限Apk
android系统签名工具,用此工具可以生成系统签名文件,使用android studio开发的apk可以用此文件签名
4.签名后的apk,即可安装到Android系统。 5.注意,签名文件需要你自己Android源码系统的,我这里不提供。build/target/product/security 就是这个security文件夹里面的内容 6.签名cmd命令 java -jar signapk.jar ...
给apk增加系统签名,否则一些系统apk将无法安装,使用命令: java -jar SignApk.jar platform.x509.pem platform.pk8 app_unsigned.apk app_signed.apk 其中SignApk.jar platform.x509.pem platform.pk8都打包在...
android10 apk签名文件,签名后可以获取系统权限