android系统签名工具,android应用实现重启系统+签名「建议收藏」

android系统签名工具,android应用实现重启系统+签名「建议收藏」1.在AndroidManifest.xml文件的manifest标签中加入一条android:sharedUserId=”android.uid.system”package=”com.ipanel.update”android:versionCode=”1″android:versionName=”1.0″android:sharedUserId=”android.uid.system”&g…

大家好,又见面了,我是你们的朋友全栈君。

1.在AndroidManifest.xml文件的manifest标签中加入一条android:sharedUserId=”android.uid.system”

package=”com.ipanel.update”

android:versionCode=”1″

android:versionName=”1.0″

android:sharedUserId=”android.uid.system” >

android:minSdkVersion=”9″

android:targetSdkVersion=”15″ />

android:icon=”@drawable/ic_launcher”

android:label=”@string/app_name”

android:theme=”@style/AppTheme” >

android:name=”.MainActivity”

android:label=”@string/title_activity_main” >

2.在MainActivity中,有以下2种方式实现:

/*Intent reboot = new Intent(Intent.ACTION_REBOOT);

reboot.putExtra(“nowait”, 1);

reboot.putExtra(“interval”, 1);

reboot.putExtra(“window”, 0);

sendBroadcast(reboot); */

PowerManager pManager=(PowerManager) getSystemService(Context.POWER_SERVICE);

pManager.reboot(“”);

整个代码:

package com.demo.reboot;

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.Context;

import android.content.DialogInterface;

import android.content.Intent;

import android.os.Bundle;

import android.os.PowerManager;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class MainActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button rebootBtn = (Button) findViewById(R.id.button2);

rebootBtn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

new AlertDialog.Builder(MainActivity.this)

.setTitle(“提示”)

.setMessage(“确认重启么?”)

.setPositiveButton(“重启”, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// 重启

/*String str = “重启”;

try {

str = runCmd(“reboot”, “/system/bin”);

} catch (IOException e) {

e.printStackTrace();

}*/

/*Intent reboot = new Intent(Intent.ACTION_REBOOT);

reboot.putExtra(“nowait”, 1);

reboot.putExtra(“interval”, 1);

reboot.putExtra(“window”, 0);

sendBroadcast(reboot); */

PowerManager pManager=(PowerManager) getSystemService(Context.POWER_SERVICE);

pManager.reboot(“重启”);

System.out.println(“execute cmd–> reboot\n” + “重启”);

}

})

.setNegativeButton(“取消”, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// 取消当前对话框

dialog.cancel();

}

}).show();

}

});

}

}

3.给apk签名

签名方法:

1>添加权限

在AndroidManifest.xml文件下添加android:sharedUserId=”android.uid.system” 。

2>在Eclipse中导出无签名的应用文件

在工程中:右键->Android Tools -> Export Unsigned Application Package导出应用

3>找出系统签名密钥

系统密钥为: platform.pk8和platform.x509.pem

路径: build\target\product\security

4>找出系统签名工具

工具为:signApk.jar

路径:/out/host/linux-x86/framework/ signApk.jar

5>开始签名

将第2、3、4步找到的无签名应用、platform.pk8、platform.x509.pem和signApk.jar放到同一文件夹下如F:\sign。

打开 dos 操作界面,定们到F:\sign,输入命令:

java -jar  signapk.jar  platform.x509.pem  platform.pk8 **.apk   ***.apk

(**.apk 为未签名应用  ***.apk 为签名之后应用)

注:之前在评论里有错误的说过这个签名工具是通用的,这里纠正下。编译导出的apk,要安装到那个版本的系统,就去那源码里找对应的签名工具,并不是各个版本通用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151991.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • linux安装weget命令,linux安装wget命令

    linux安装weget命令,linux安装wget命令wget命令是linux系统下的一个常用命令。下面由学习啦小编为大家整理了linux安装wget命令的相关知识,希望大家喜欢!linux安装wget命令方法一debian或者ubuntu:sudoapt-getinstallwgetcentos:sudoyum-yinstallwgetlinux安装wget命令方法二我们先安装linux系统比如centos7.1里面有的就…

    2022年10月16日
  • 决策树算法(ID3)

    决策树算法(ID3)

    2021年11月19日
  • 拉姆达表达式的使用[通俗易懂]

    拉姆达表达式的使用[通俗易懂]1.什么是λ表达式 λ表达式本质上是一个匿名方法。让我们来看下面这个例子:   publicintadd(intx,inty){       returnx+y;   }转成λ表达式后是这个样子:       (intx,inty)->x+y;参数类型也可以省略,Java编译器会根据上下文推断出来:   (x,y)…

  • 连接kafka报错:1 partitions have leader brokers without a matching listener「建议收藏」

    连接kafka报错:1 partitions have leader brokers without a matching listener「建议收藏」服务输出部分错误日志截图2020/12/25下午2:32:442020-12-2514:32:44.320WARN[tag-service,,,]1—[ntainer#4-0-C-1]org.apache.kafka.clients.NetworkClient:[ConsumerclientId=consumer-5,groupId=statistic-processor]1partitionshaveleaderbrokerswithoutamatchi

  • 大数据应用及其解决方案(完整版)

    大数据应用及其解决方案(完整版)目录1、大数据概述1.1.概述1.2.大数据定义1.3.大数据技术发展2、大数据应用2.1.大数据应用阐述2.2.大数据应用架构2.3.大数据行业应用2.3.1.医疗行业2.3.2.能源行业2.3.3.通信行业2.3.4.零售业3、大数据解决方案3.1.大数据技术组成3.1.1.分析技术3.1.2.存储数据库…

  • 什么叫侧面指纹识别_屏下指纹和侧面指纹触控有什么区别[通俗易懂]

    什么叫侧面指纹识别_屏下指纹和侧面指纹触控有什么区别[通俗易懂]指纹识别作为一种生物识别方案,在手机上的应用为用户日常使用带来了极大的便利,从解锁手机到应用加密再到支付等场景,原本需要输密码的繁琐场景如今按一下手指就行。随着手机的发展,指纹解锁也出现了不同的解决方案,比如OPPOK3所采用的目前主流的屏下指纹解锁,以及荣耀9X所采用侧面指纹解锁。那么在实际应用场景中,哪种指纹识别更实用呢?采用了屏幕指纹的OPPOK3与侧面指纹的荣耀9X都有着真全面屏的设计…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号