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,要安装到那个版本的系统,就去那源码里找对应的签名工具,并不是各个版本通用

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

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

(0)
上一篇 2022年6月21日 上午9:00
下一篇 2022年6月21日 上午9:16


相关推荐

  • 解决ajax跨域问题【5种解决方案】「建议收藏」

    解决ajax跨域问题【5种解决方案】「建议收藏」什么是跨域问题?跨域问题来源于JavaScript的”同源策略”,即只有协议+主机名+端口号(如存在)相同,则允许相互访问。也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。跨域问题是针对JS和ajax的,html本身没有跨域问题。查看浏览器开发者工具Console报错:Failedtoloadhttp://a.a.com:8080/A/…

    2022年8月24日
    12
  • pycharm安装TensorFlow的体会

    pycharm安装TensorFlow的体会本方法无需下载 anaconda1 官网安装 python 编译器 需 3 7 以上 2 官网安装 pycharm 配置环境 3 TensorFlow 安装时的方法 1 pycharm 的界面 file settings project xx pythoninterp 有一个加号 availablepac 的地方可以搜索 TensorFlow 下载问题 会加载超时 Readtimedout 2 Windows 键 R 搜索 cmda 直接 pipinstallte

    2026年3月27日
    3
  • CMD命令实现数字雨

    CMD命令实现数字雨使用cmd命令可以实现类似黑客帝国中的数字雨,这里给出脚本和演示效果:digitalrain.bat@echoofftitledigitalraincolor0bsetlocalENABLEDELAYEDEXPANSIONfor/l%%iin(0)do(set”line=”for/l%%jin(1,1,80)do(set/aDown%%…

    2022年6月9日
    50
  • 在pycharm安装pygame

    在pycharm安装pygame在 pycharm 安装 pygame1 打开 pycharm 新建一个新项目 2 输入下载命令 pipinstallpy 出现 Successfully 2 0 1 版本号 标志着成功安装欢迎使用 Markdown 编辑器你好 这是你第一次使用 Markdown 编辑器所展示的欢迎页 如果你想学习如何使用 Markdown 编辑器 可以仔细阅读这篇文章 了解一下 Markdown 的基本语法知识 新的改变我们对 Markdown 编辑器进行了一些功能拓展与语

    2026年3月20日
    2
  • Java 中是如何获取 IP 属地的[通俗易懂]

    Java 中是如何获取 IP 属地的[通俗易懂]细心的小伙伴可能会发现,抖音新上线了IP属地的功能,小伙伴在发表动态、发表评论以及聊天的时候,都会显示自己的IP属地信息这里有三个名词,分别是X-Forwarded-For:一个HTTP扩展头部,主要是为了让Web服务器获取访问用户的真实IP地址。每个IP地址,每个值通过逗号+空格分开,最左边是最原始客户端的IP地址,中间如果有多层代理,每⼀层代理会将连接它的客户端IP追加在X-Forwarded-For右边。X-Real-IP:一般只记录真实发出请求的客户端IP

    2022年10月21日
    3
  • mybatis返回结果类型(resulttype返回list)

    1.返回List>12selectid=”getMyCredit”parameterClass=”java.util.Map”resultClass=”java.util.HashMap”>select>这样设置返回类型为resultClass=”java.util.Ha

    2022年4月18日
    105

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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