转载:重新签名,修改系统时间,android.uid.system

SignAPK V2 签名工具 Rom签名 立即下载

昨天写应用,涉及到需要修改系统时间等操作,查了一下Android 的设置源码,里面的一个方法如下:

 

    public   void  onDateSet(DatePicker view,  int  year,  int  month,  int  day) {
        Calendar c 
=  Calendar.getInstance();

        c.
set (Calendar.YEAR, year);
        c.
set (Calendar.MONTH, month);
        c.
set (Calendar.DAY_OF_MONTH, day);
        
long  when  =  c.getTimeInMillis();

        
if  (when  /   1000   <  Integer.MAX_VALUE) {
            SystemClock.setCurrentTimeMillis(when);
        }
        updateTimeAndDateDisplay();
    }

 

从上面的 Android 应用程序源码可以看出,修改系统日期需要为Calendar 设置年月日,然后通过调用 SystemClock.setCurrentTimeMillis 方法,设置系统日期,既然源码是这样写的,那我们也依样画葫芦来学一下吧,下面是通过使用datePicker修改日期的代码:

 

canlendar  =  Calendar.getInstance();
                    year 
=  datePicker.getYear();
                    month 
=  datePicker.getMonth();
                    day 
=  datePicker.getDayOfMonth();
                    canlendar.
set (Calendar.YEAR, year);
                    canlendar.
set (Calendar.MONTH, month);
                    canlendar.
set (Calendar.DAY_OF_MONTH, day);
                    
long  when  =  canlendar.getTimeInMillis();
                    
if  (when  /   1000   <  Integer.MAX_VALUE) {
                        SystemClock.setCurrentTimeMillis(when);
                        tv_date.setText(canlendar.
get (Calendar.YEAR)  +   " / "
                                
+  ((canlendar. get (Calendar.MONTH)  +   1 ))  +   " / "
                                
+  canlendar. get (Calendar.DAY_OF_MONTH));
                    }

 

 

Tip:每次需要使用Calendar 必须获得一次实例,否则会它会使用上一次获取实例的日期格式,修改的时候可能会有点小问题

可是,照着上面的代码敲了之后,运行却出现如下的警告:

 

网上查了一下,说SystemClock.setCurrentTimeMillis  这个函数需要root 权限或者运行在系统进程中才可以用,通过参考了这一篇文章我得到了解决办法:http://dev.10086.cn/blog/?uid-49302-action-viewspace-itemid-907 ,不过这篇文章的第二个办法说得有点不是很清楚,这里我重新为大家详细说一下

先进入 Android 源码目录 F:/android_source/build/target/product/security ,具体机器目录自己选择。找到 【platform.pk8】和【platform.x509.pem】这两个文件,这里为了方便将它们复制到根目录,如:F:/sign 文件夹内,本来下一步就是需要打包jar 包了,不过里我们在android系统的源码内找到 out 编绎目录下

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文件的名称

Tip:在签名的时候必须将set.apk事先用rar 文件打开,进入META-INF目录下,将CERT.SF和CERT.RSA这两个文件删除掉,再执行如上操作。到了这一步,程序己经可以正常安装了。

如果提示 FaiLure [INSTALL_FAILED_ALREADY_EXISTS],请使用如下命令,将应用程序移除:,uninstall 后面字符是指应用程序所在的包名,再运行adb install [package name] 就可以安装成功。

Tip:不要忘了在你的manifest文件下注册android:sharedUserId="android.uid.system" 。

如果你照着如上的步骤一步一步写的话,保证可以成功修改系统的时间或者日期等操作。

 

 

出处:http://dev.10086.cn/cmdn/supesite/?uid-49302-action-viewspace-itemid-1034

SignApkV2 签名工具 rom签名工具 立即下载

相关推荐

一个检测apk是否支持v1、v2 签名的工具,SignApkV2 签名检测工具

一个检测apk是否支持v1、v2 签名的工具,SignApkV2 签名检测工具 直接调用:ApkSignerTool.verify(String apkPath) 命令行:java -jar CheckAndroidSignature.jar xxxx.apk 结果: {"ret":0,"msg":"","isV1OK":true,"isV2":true,"isV2OK":true,"keystoreMd5":"8f701cdd1c0d8856e440363185c7daf7"}

Android 为【apk】文件签名,增加修改系统时间等权限

昨天写应用,涉及到需要修改系统时间等操作,查了一下Android 的设置源码,里面的一个方法如下:      public void onDateSet(DatePicker view, int year, int month, int day) {        Calendar c = Calendar.getInstance();        c.set(Calendar.YEAR...

weixin_34375233的博客 173

SignApkV2SignApkV2 签名工具rom签名工具 .zip

SignApkV2SignApkV2 签名工具rom签名工具

安卓应用修改系统时间

博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 前言 通常,我们来获取系统时间来做一些事情,那么,如何设置系统时间呢? 问题抛出来,解决方法也就应运而生了。 解决方法 命令行 首先我想到的是手机root,然后命令行 date -s 要设置的时间复制代码关于如何调用命令行,请点击:安卓程序中调用 linux 命令 如果手机没 root 怎...

weixin_34392843的博客 715

稳定获取Android设备唯一码(UUID)的解决方案

最近做的一个项目中需要用到Android设备唯一码(UUID)来标识一台设备, Android中设备唯一码有很多,如:MAC地址、IMEI号(DeviceId)、IMSI号、ANDROID_ID、序列号(SerialNumber)等, 但并不是所有设备上都能稳定获取到这些值。 最后项目中采用的是MAC地址。 先总结一些搜索得知的各种值的缺点,再说说...

weixin_33726318的博客 1207

Android 将自己的应用改为系统应用

所谓系统程序就是system/app目录中的程序,普通应用转换成系统程序后有稳定、减少内存(DATA)空间占用、恢复出厂设置后不会消失、修改系统时间、调用隐藏方法、系统关机重启、静默安装升级卸载应用等等等等优点,想知道怎么操作?接下来我们介绍三种方法。第一种:使用ADB命令将app安装在system/app目录下转载android 将自己的应用改为系统应用这种方法的原理就是:1、把apk文件移动到

薛瑄的博客 9万+

转载Android中如何修改系统时间(应用程序获得系统权限)

http://blog.csdn.net/liujian885/archive/2010/03/22/5404834.aspx在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权限或者运行与系统进程中才可以用。        本来以为

不以己悲的博客 2628

关于android:sharedUserId="android.uid.system"这个系统级权限 2016年10月04日 23:03:08 yangzheng114 阅读数:30507

最近在做的项目,有好大一部分都用到这个权限,修改系统时间啊,调用隐藏方法啊,系统关机重启啊,静默安装升级卸载应用等等,刚开始的时候,直接添加权限,运行就报错,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权限或者运行于系统进程中才可以用。网上搜索了好久,发现有两种方法可以解决: ...

liangtianmeng的专栏 289

Android修改/system目录权限问题

今天的需求的是安装一个apk第一次使用命令安装adb install xxx.apk,报错误:安装包是system UID的,安装失败。第一反应是这是个系统应用,要root权限安装,于是改用模拟器安装,新建了一个8.0 Google play的模拟器,发现不能root,查阅资料得标识Google play的image是不能root的,所以又下载了7.0Google API的image...

aq123654的博客 878

mk中的 android:sharedUserId和LOCAL_CERTIFICATE作用 应用程序获得系统权限

转载: Android中如何修改系统时间(应用程序获得系统权限)  在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root

hello world 608

Android中应用程序如何获得系统签名权限

有些库的使用条件比较苛刻,要求同一签名的程序才可以获得访问权。此时即便是在AndroidManifest.xml中添加了相应的permission,依旧会得到没有xx访问权限的问题。比如android.permission.ACCESS_SURFACE_FLINGER 。 第一个方法简单点,不过需要在Android系统源码的环境下用make来编译: 1. 在应用...

weixin_30848775的博客 85

Android 实现关机重启的方法

1、使用AndroidManager来实现(我在项目中使用的此方法) PowerManager pManager = (PowerManager) getSystemService(Context.POWER_SERVICE); pManager.reboot("重启"); 2、发送reb...

chenmoquan2964的博客 271
上一篇: android.intent.action.MAIN与android.intent.category
下一篇: 轉載:File,FileInputStream,FileReader,InputStreamReader,BufferedReader
jason_wks
博客等级 码龄15年 25粉丝 38原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值