当前位置: 首页 > 编程笔记 >

使用Android Studio实现为系统级的app签名

章安宜
2023-03-14
本文向大家介绍使用Android Studio实现为系统级的app签名,包括了使用Android Studio实现为系统级的app签名的使用技巧和注意事项,需要的朋友参考一下

我们在做系统级的app开发时,往往会在AndroidManifest.xml文件中添加:android:sharedUserId=”android.uid.system”以获取系统级的权限,如果你正在使用Android Studio进行开发,编译生成的apk会因为签名问题无法安装。

此时有两个解决方案

1,是将编译好的apk放入源码中vender目录下,编写相应的android.mk文件,并在文件中加入:

LOCAL_CERTIFICATE := platform

然后使用“mmm your_apk_file”编译你的apk。

之后会在”out/target/product/youProduct/system/priv-app”下生成对应的带签名的apk文件。

第二种,就是下边将要介绍的,对于习惯使用ide的同学准备的。

一.准备

首先要准备keytool-importkeypair工具,和签名所需的系统签名文件。

下载keytool-importkeypair

https://github.com/getfatday/keytool-importkeypair

签名文件

build/target/product/security/ platform.x509.pem、platform.pk8

二、使用Android studio 生成自己的jks文件

打开新建key的界面:

build->Generate Signed APK…

填写jks路径、密码、别名等信息,点击OK生成jks文件

三、使用keytool-importkeypair工具为生成的jks文件添加系统签名。

首先配置keytool-importkeypair的环境变量,在user文件夹下新建bin目录,将keytool-importkeypair复制到bin目录下,然后将bin目录添加到PATH变量中。

export PATH=$PATH:/home/username/bin;

将两个系统签名文件platform.x509.pem、platform.pk8复制到jks文件所在的目录中,运行以下命令为签名文件添加系统签名:

keytool-importkeypair -k [jks文件名] -p [jks的密码] -pk8 platform.pk8 -cert platform.x509.pem -alias [jks的别名]

四、配置gradle文件使用签名文件

配置build.gradle文件(Module:app),在Android{}代码块中添加如下代码:

  signingConfigs {
    release {
      storeFile file("/home/mi/android_key/mykey_e8.jks")
      storePassword 'android'
      keyAlias 'platform'
      keyPassword 'android'
    }

    debug {
      storeFile file("/home/mi/android_key/mykey_e8.jks")
      storePassword 'android'
      keyAlias 'platform'
      keyPassword 'android'
    }
  }

五、编译运行

点击run或者debug运行app,这样装在手机后就能够正确运行了。

以上这篇使用Android Studio实现为系统级的app签名就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 系统调用实现 系统调用的英文名字是System Call。操作系统为什么需要实现系统调用呢?其实这是实现了用户进程后,自然引申出来需要实现的操作系统功能。用户进程只能在操作系统给它圈定好的“用户环境”中执行,但“用户环境”限制了用户进程能够执行的指令,即用户进程只能执行一般的指令,无法执行特权指令。如果用户进程想执行一些需要特权指令的任务,比如通过网卡发网络包等,只能让操作系统来代劳了。于是就需要

  • 实现系统调用 目前,我们实现 sys_read sys_write 和 sys_exit 三个简单的系统调用。通过学习它们的实现,更多的系统调用也并没有多难。 用户程序中调用系统调用 在用户程序中实现系统调用比较容易,就像我们之前在操作系统中使用 sbi_call 一样,只需要符合规则传递参数即可。而且这一次我们甚至不需要参考任何标准,每个人都可以为自己的操作系统实现自己的标准。 例如,在实验指导

  • 本文向大家介绍Android实现系统级悬浮按钮,包括了Android实现系统级悬浮按钮的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android系统级悬浮按钮的具体代码,供大家参考,具体内容如下 具体的需求 1、就是做一个系统级的悬浮按钮,就像iPhone 桌面的那个悬浮按钮效果一样,能随意拖动,并且手一放开,悬浮按钮就自动靠边。 2、可以点击并且可以随意拖动。 3、悬浮按钮自动

  • 我正在上我的第一堂操作系统课,所以希望我在这里没有任何大的误解。 我想知道为什么getpid()在Linux中实现为系统调用。据我所知,某些函数被做成系统调用,因为它们访问或更改操作系统可能想要保护的信息,所以它们被实现为系统调用,以便将控制权转移到内核。 但据我所知,getpid()只是返回调用进程的进程id。是否存在不授予此信息权限的情况?简单地让getpid()成为一个普通的用户函数不是很安

  • 本文向大家介绍laravel 使用事件系统统计浏览量的实现,包括了laravel 使用事件系统统计浏览量的实现的使用技巧和注意事项,需要的朋友参考一下 最近有一个商城项目中有统计商品点击量和艺术家访问量的需求,但又不想改动太多原来的代码,而点击与访问这两个动作是有明确触发点的,正好可以用laravel中的事件系统来做,在点击和访问对应的函数中产生这俩事件,监视器获取到之后,再将记录保存到数据库中,

  • 本文向大家介绍unity使用射线实现贴花系统,包括了unity使用射线实现贴花系统的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Unity使用射线实现贴花系统,供大家参考,具体内容如下 老规矩,直接上代码: 最终效果: 暂时先这样吧。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。