精华内容
下载资源
问答
  • Android 系统签名工具 signapk.jar
  • Android 系统签名文件

    2016-01-23 11:19:47
    Android系统签名文件 ,针对没有签名的文件进行的系统签名.
  • android 系统签名文件,给第三方应用通过 signapk.jar 进行系统签名 platform.pk8、testkey.pk8、releasekey.pk8
  • android系统签名文件

    2018-02-06 16:37:37
    signapk.jar 、platform.x509.pem 、platform.pk8、libconscrypt_openjdk_jni.so等签名文件,具体流程参考http://blog.csdn.net/xiaoyi_tdcq/article/details/79272047
  • Android系统签名工具

    2017-07-18 14:56:00
    Android系统签名工具
  • Android系统签名

    2019-07-23 15:37:51
    一、签名的作用 有时候,我们开发的apk需要用到系统权限,需要在AndroidManifest.xml中添加共享系统进程属性: android:sharedUserId=“android.uid.system” android:sharedUserId=“android.uid.shared” ...

    一、签名的作用

    有时候,我们开发的apk需要用到系统权限,需要在AndroidManifest.xml中添加共享系统进程属性:
    android:sharedUserId=“android.uid.system”
    android:sharedUserId=“android.uid.shared”
    android:sharedUserId=“android.media”
    如:

    ···

    这时候apk的签名就需要是系统签名(platform、shared或media)才能正常使用。
    四组默认签名供Android.mk在编译APK使用:
    1、testkey:普通APK,默认情况下使用(OTA固件使用该签名)。
    2、platform:该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system。
    3、shared:该APK需要和home/contacts进程共享数据。
    4、media:该APK是media/download系统中的一环。

    二、APK签名方法:

    1.在源码中添加prebuilt的apk,在Android.mk中添加
    LOCAL_CERTIFICATE := platform(PRESIGNED/shared/media/testkey)
    这里的名字分别对应/build/target/product/security下文件名,可选PRESIGNED则不对app进行重新签名
    2.使用命令行工具对apk进行签名
    在/out/host/linux-x86/framework目录复制signapk.jar
    在/prebuilts/sdk/tools/linux/lib64目录复制libconscrypt_openjdk_jni.so
    java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk
    3.使用AndroidStudio对apk进行签名(支持*.keystore/*.jks)
    3.1 Build->Generate signed Bundle/APK…->APK->选择并填写签名(可在这里新建jks签名)->Finish
    3.2 File->ProjectStructure->Module->Signing->添加签名->BuildTypes在release下选择SigningConfig

    三、生成签名的方法:

    1.使用keytool生成签名:
    keytool -genkey -v -keystore platform.keystore -alias colmo_platform -keyalg RSA -validity 20000
    keytool -importkeystore -srckeystore platform.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12
    openssl pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem
    用文本编辑器打开tmp.rsa.pem,将从
    -----BEGIN PRIVATE KEY-----

    -----END PRIVATE KEY-----
    这一段(包含这两个tag)的文本复制出来,新建为文件platform.rsa.pem
    将从
    -----BEGIN CERTIFICATE-----

    -----END CERTIFICATE-----
    这一段(包含这两个tag)的文本复制出来,新建为文件platform.x509.pem
    openssl pkcs8 -topk8 -outform DER -in platform.rsa.pem -inform PEM -out platform.pk8 -nocrypt
    最后保留platform.pk8和platform.x509.pem这两个文件,platform.keystore可用于AndroidStudio签名
    删除其他中间文件
    2.使用AOSP工具生成:(推荐使用该方法,密码留空,防止编译报错)
    …/…/…/…/development/tools/make_key xxx ‘/C=CN/ST=Guangdong/L=Foshan View/O=Colmo/OU=Colmo/CN=Colmo/emailAddress=xiongbin.xie@midea.com’
    C —> Country Name (2 letter code)
    ST —> State or Province Name (full name)
    L —> Locality Name (eg, city)
    O —> Organization Name (eg, company)
    OU —> Organizational Unit Name (eg, section)
    CN —> Common Name (eg, your name or your server’s hostname)
    emailAddress —> Contact email address
    将pk8和x509.pem转换成keystore
    2.1.使用platform.pk8生成了key.pem 文件
    openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out key.pem
    2.2.使用platform.x509.pem 和key.pem 生成了platform.p12 文件,其中签名的名字是colmo_platform,密码是midea123
    openssl pkcs12 -export -in platform.x509.pem -inkey key.pem -out platform.p12 -password pass:midea123 -name colmo_platform
    2.3.使用platform.p12 生成了mykey.keystore 文件,keystore密码是midea123
    keytool -importkeystore -deststorepass midea123 -destkeystore platform.keystore -srckeystore platform.p12 -srcstoretype PKCS12 -srcstorepass midea123
    2.4.查看签名信息,删除中间文件platform.p12和key.pem
    keytool -list -v -keystore platform.keystore

    四、修改系统默认签名:

    1.直接替换build/target/product/security目录下的platform/media/shared这几个秘钥文件
    2.对于系统签名需要修改keys.conf和Makefile
    2.1 修改system/sepolicy/keys.conf将testkey改为对应签名文件命名
    2.2 修改build/core/config.mk +628行,将testkey改为对应签名命名
    3.修改make_inc_ota.sh的ota_from_target_files的-k参数

    展开全文
  • Android studio导入: android { signingConfigs { releaseConfig { storeFile file('C:/lyl/keys/platform.keystore') storePassword 'android' keyAlias 'android' keyPassword 'android' } debug...
  • android源码中生成系统签名文件,使用系统签名生成系统权限Apk
  • 假设我们得到了系统签名文件:platform.pk8、platform.x509.pem,还需要一个用于签名的文件:signapk.jar,这里提供了一份下载连接,可供练习使用:链接:https://pan.baidu.com/s/1OiBcVyhZVqTulb6HXwcqHA 提取码...

    一、应用使用系统签名

    假设我们得到了系统签名文件:platform.pk8、platform.x509.pem,还需要一个用于签名的文件:signapk.jar,这里提供了一份下载连接,可供练习使用:链接:https://pan.baidu.com/s/1OiBcVyhZVqTulb6HXwcqHA 提取码:7g81

    有时候我们找系统提供商要系统签名时,可能给的文件很多,如下:
    在这里插入图片描述
    其实真正只需要用到platform.pk8、platform.x509.pem即可。

    不同的系统,系统签名是不一样的,所以你们下载我的这个签名文件是用不到你的系统上的,但是signapk.jar是通用的,什么系统签名都可以使用他。

    当你有你的系统签名文件时,如何把一个apk签名为系统签名呢?如下:

    1. 把platform.pk8、platform.x509.pem、signapk.jar、app.apk放到同一个目录下

    2. CMD进入到上面的目录中,然后输入如下命令:

      java -jar signapk.jar platform.x509.pem platform.pk8 app.apk app_signed.apk
      

      注:这里app.apk就是你的App,此App不论是有签名还是没签名都是可以的,通过上面的命名后,签名就会变成系统的签名了。

    这有一篇文章:应该是需要在Linux系统下进行操作的:https://blog.csdn.net/georgebindragon/article/details/106253192

    注:一个应用要想使用系统签名,还需要在清单文件中设置一个属性,如下:

    <manifest
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:sharedUserId="android.uid.system">
    

    我们使用adb命令安装一个没有签名的apk

    adb install unsigned.apk
    

    此时会报错,如下:

    Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
    

    INSTALL_PARSE_FAILED_NO_CERTIFICATES翻译过来就是:安装解析失败,没有证书(签名)

    使用adb命令安装一个有系统签名的apk,但是安装到一个不匹配的android系统上,会报错如下:

    Failure [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE]
    

    INSTALL_FAILED_SHARED_USER_INCOMPATIBLE翻译过来就是:安装失败,共享用户不兼容(其实说的就是系统签名与所安装的手机不兼容)

    二、把系统签名弄成jks签名文件

    1、把platform.pk8、platform.x509.pem放在同一个目录下,然后cmd中进入这个目录。
    2、生成platform.pem,输入如下命令:

    openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
    

    如果提示没有openssl命令,则需要先安装openssl,下载地址:http://slproweb.com/products/Win32OpenSSL.html,一般我们下载64位的exe,且容量大的那个,如下:
    在这里插入图片描述
    预防下载连接失效,这里也提供一个百度网盘下载:链接:https://pan.baidu.com/s/1gFpPMwfwCTpty7xCdiEZ2A 提取码:1234

    安装后之后,把安装目录下的bin目录设置到path环境变量中即中。

    3、生成platform.p12,命令如下:

    openssl pkcs12 -export -in  platform.x509.pem -out platform.p12 -inkey  platform.pem -password pass:123456 -name key0
    

    注:这里的123456为密码,key0为别名,可以自行设置。
    4、生成platform.jks,命令如下:

    keytool -importkeystore -deststorepass 123456 -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass 123456
    

    注:这里有两个123456,都是密码,与前一步设置的密码保持一致。

    这一步,会报出一个警告,如下:

    Warning:
    JKS 密钥库使用专用格式。建议使用 “keytool -importkeystore -srckeystore ./platform.jks -destkeystore ./platform.jks -deststoretype pkcs12” 迁移到行业标准格式 PKCS12。

    可以忽略它,也可以按它说的输入那个命令:

    keytool -importkeystore -srckeystore ./platform.jks -destkeystore ./platform.jks -deststoretype pkcs12
    

    到这里,我们就有了一个platform.jks的系统签名文件了,以后打包apk就像平常那样打包即可,可以把debug的签名也设置为这个,这样在AndroidStudio中可以直接运行apk来调试。

    展开全文
  • Android 系统签名实现的三种方式

    万次阅读 2019-06-22 17:23:35
    常用的系统签名方式包括在ubuntu环境下、手动签名和在AndroidStudio环境配置,三种方式中,实现最简单的是通过AndroidStudo方式,该方式的签名实现与正常的APK签名相同,唯一不同的就是签名文件是通过系统生成的。...

    在项目开发时,如果需要使应用具有系统权限,例如可以支持静默安装和卸载APK,此时就需要使用系统签名。
    常用的系统签名方式包括在ubuntu环境下、手动签名和在AndroidStudio环境配置,三种方式中,实现最简单的是通过AndroidStudo方式,该方式的签名实现与正常的APK签名相同,唯一不同的就是签名文件是通过系统生成的。
    注意,无论采用何种签名方式,如果想实现具有系统权限的应用,在APK生成时,都需要在AndroidManifest.xml中配置android:sharedUserId=“android.uid.system”,如下所示

    <manifest  xmlns:android="http://schemas.android.com/apk/res/android"
                package="com.xxxx.xxxx"
               android:sharedUserId="android.uid.system">
    
    </manifest>
    

    1. ubuntu环境编译

    该方式需要在安卓源码编译的环境下,在将APK打包至安卓系统升级包时,需要配置Android.mk文件,通过在配置LOCAL_CERTIFICATE 参数时,将其设置为PRESIGNED,如果需要改APK具有系统权限,使用系统签名,则需要设置为platform

    LOCAL_CERTIFICATE := platform 或 shared 或 media
    
    

    在设置好 Android.mk 文件后,在ubuntu环境下执行系统的编译流程。
    如果之前在ubuntu环境下已经执行好了系统的编译流程,则可以直接cd到系统的package/apps目录下,进入到需要编译的APK文件目录下执行mm指令,或在其他目录执行mmm /package/apps/APK所在的文件夹名称。

    2.手动签名

    手动系统签名与Android的APK重签名不同,重签名是之前APK已经签名完成,在实际使用时,需要更改签名文件,例如一些特殊的算法处理对于系统的包名和签名都有绑定操作,如更换则无法使用。
    手动系统签名是对于通过AndroidStudio的build生成的无签名的APK文件,进行手动系统签名操作。具体执行过程如下。

    2.1 下载SignApk.jar

    首先下载SignApk.jar包,如下图所示
    在这里插入图片描述如果本地有安卓系统的源码,可以直接在本地的build\tools\signapk目录下查找到该jar包。

    2.2 查找security文件

    拿到系统定制厂商提供的security文件,不同编译下生成的security文件内容不同,需针对该安卓系统下的编译生成的security文件,因此这也限定了该系统签名后的应用只能在该系统下运行,在其他系统下运行就不具有系统权限。
    在security文件中找到media.pk8和platform.x509.pem两个文件。

    2.3 执行系统签名操作

    将2.1中的SignApk.jar和2.2中的media.pk8和platform.x509.pem文件一起复制到包含需要签名的APK文件夹中,然后执行如下语句

    java -jar signapk.jar  platform.x509.pem platform.pk8 old.apk new.apk
    

    生成的new.apk文件就是系统签名后APK文件。
    该方式的操作,可参考安卓签名工具SignApk.jar使用教程,其已将签名的流程制作成Window下的.exe工具,只需一次配置,每次点击更换需要签名的文件即可。

    3 AndroidStudio方式

    通常对于APK的签名文件是通过AndroidStudio的New Key Store方式自定义实现,但是如果需要使用系统签名文件需要结合security文件中的media.pk8和platform.x509.pem两个文件,通过keytool-importkeypair实现,下载成功后,将media.pk8和platform.x509.pem两个文件放置在包含 keytool-importkeypair目前下,执行以下语句。

    ./keytool-importkeypair -k ./platform.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform
    

    需要注意的是:

    • 该语句的执行是在ubuntu环境下执行的
    • platform.keystore为系统签名文件
    • android为签名密码
    • platform为签名的别名(alias)

    生成系统签名后,在AndroidStudio中配置Signing签名信息,配置成功后在modle的buid.gradle中可以查看如下配置信息。

    signingConfigs {
        releaseConfig {
            keyAlias 'platform'
            keyPassword 'android'
            storeFile file('.........platform.keystore')//签名文件路径
            storePassword 'android'
        }
    }
    

    4.总结

    从以上的分析中可以看出,无论三种那种方式的实现,都离不开系统源码中的security目录下的media.pk8和platform.x509.pem两个文件,该两个文件是保证应用具有系统签名的前提,如果使用其他系统的文件,则在该系统中,无法具有系统权限。
    对比以上方法,分为具有ubuntu和没有两种环境下。

    • 具有ubuntu的编译环境:则使用第一种比较简单,第三种生成的系统签名文件,可用于其他APK的签名使用,在AndroidStudio中配置后,方便调试使用,不必每次都执行命令行来生成签名后的APK文件。
    • 不具有ubuntu的编译环境:该方式只能通过第二种方式实现,且每次调试使用时都需要替换APK生成新的系统签名后的APK,操作比较繁琐。当然在2.3中也提到,可借助其他同学制作的小工具方便签名文件的使用。

    参考
    安卓签名工具SignApk.jar使用教程
    让Android Studio支持系统签名
    keytool-importkeypair 使用

    展开全文
  • 适用于Android 8.1 Oreo,APP要进行系统签名需要对应的platform.pk8和platform.x509.pem
  • Android 系统签名打包方法

    千次阅读 2019-04-22 14:38:33
    方式一 命令行生成(推荐): 此方式不需要配置,步骤也不多。 在应用程序manifest.xml...在android系统目录build/target/product/security/拷贝系统签名文件:platform.x509.pem、platform.pk8; 在out/host...

    方式一 命令行生成(推荐):

    此方式不需要配置,步骤也不多。

    1. 在应用程序manifest.xml文件根节点中加入属性:Android:sharedUserId=“android.uid.system”;

    2. 在android系统目录build/target/product/security/拷贝系统签名文件:platform.x509.pem、platform.pk8;

    3. 在out/host/linux-x86/framework目录下找到signapk.jar文件;

    4. 把三个文件(platform.x509.pem、platform.pk8、signapk.jar)放在一个文件夹下,再把需要系统签名的test.apk也放在该文件下。

    5. window cmd 路径要在引导(cd)该文件夹下,利用签名工具signapk.jar修改应用程序签名:命令为:java -jar signapk.jar platform.x509.pem platform.pk8 test.apk testsign.apk

    方式二 更改AS 打包配置:

    此方式配置繁琐,但一劳永逸,适合频繁打包的场景
    使用keytool-importkeypair工具
    原理:
    就是通过Android studio 直接给 apk 加上开发者签名(jks文件),使用 keytool-importkeypair 对jks文件进行系统签名,在出包的时候,直接使用带有系统签名的 jks 对 apk 进行签名,这样编译生成的 apk 文件就自带系统签名了

    1、使用Android studio 生成你自己的 jks 文件,如下图;

    在这里插入图片描述

    如果,之前没有的就新建,点击Create New … 设置密码(易记,建议123456),如下图:
    在这里插入图片描述
    然后Next – Finish

    2、使用keytool-importkeypair对jks文件引入系统签名

    把platform.x509.pem、platform.pk8和上一部生成的jks文件统一放到一个文件夹下,比如我的是放在工程目录的 signAPK目录下在这里插入图片描述
    将下载好的keytool-importkeypair配置一下,其实主要就是配置一下环境变量,不熟悉的可以阅读官方文档,然后使用下面这条命令(需要在linux下,用windows的可以去在linux下生成jks,然后复制出新的jks回原目录也可以)对jks文件引入系统签名:

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

    例如我的对应的就是:
    ./keytool-importkeypair -k SignDemo.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias SignDemo

    运行完这条命令之后,我们就得到了有系统签名的jks。

    3、配置gradle(app)

    在Android区域下(与defaultConfig同级)添加signingConfigs配置:
    依次填写jks的路径,密码,别名等

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.2"
    
        defaultConfig {
            applicationId "com.cxq.signdemo"
            minSdkVersion 19
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
        }
        signingConfigs {
            release {
                storeFile file("../signApk/SignDemo.jks")
                storePassword '123456'
                keyAlias 'SignDemo'
                keyPassword '123456'
            }
    
            debug {
                storeFile file("../signApk/SignDemo.jks")
                storePassword '123456'
                keyAlias 'SignDemo'
                keyPassword '123456'
            }
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.3.0'
    }
    

    4、运行

    经过以上配置之后,以后每次直接点击run,app 就可以带着系统签名,直接安装到设备上了

    展开全文
  • Android 资源 platform.pk8 platform.x509.pem signapk.jar keytool-importkeypair (debug-apk.jks 密码:123456)
  • 用于Android开发给app系统签名文件,jks签名文件,包含signapk.jar,和keytool-importkeypair等文件。keytool-importkeypair的使用已经在文件中了。
  • 主要介绍了使用Android Studio实现为系统级的app签名,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了Android系统制作自定义签名的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • app 需要使用系统的权限 在 AndroidManifest.xml 中声明了系统全下申明了系统权限android:sharedUserId="android.uid.system"1.找到平台签名文件“platform.pk8”和“platform.x509.pem”文件位置 android/build/...
  • 一个直接导入eclipse,即可直接签平台签名的证书文件,在eclipse中测试通过。
  • 本文件是Android APK生成系统签名文件,关于本文件的详细用法请参见博文:http://blog.csdn.net/l1028386804/article/details/47687027
  • 实现静默安装必须拥有该机器的系统签名,所以安装程序必须得拥有系统签名 实现系统签名必须得拥有两个签名文件和一个jar包 platform.pk8 platform.x509.pem signapk.jar 1.cd到以上三个文件的目录去 2.java -jar ...
  • Android 系统签名.zip

    2021-11-20 16:05:04
    该资源主要包含如下文件:platform.pk8、platform.x509.pem、signapk.jar,属于系统签名的资源文件
  • Android 系统签名: 1、AndroidManifest加上:android:sharedUserId=“android.uid.system” android代码就不用改其他的,剩下的就是使用第三方签名。比如使用ftp地址签名(我的项目使用的就是上传到ftp文件系统中,...
  • android系统签名工具

    热门讨论 2012-12-13 16:58:23
    android 系统签名
  • 使用系统key文件生成keystore 1. 源码文件夹 android\build\target\product\security 包含四个标准key, 我们需要用到platform的key testkey -- a generic key for packages that do not otherwise specify a key. ...
  • android 系统签名

    千次阅读 2018-10-17 20:52:16
    获取系统权限的应用就必须要有系统签名,但是在开发一个系统的时候,为了系统的安全性,往往会去改变系统的签名。我们都知道通过platform.pk8 platform.x509.pem和signapk.jar可以对应用进行签名操作,但是这样很...
  • Android的开发中我们会在某些需求中需要使App具有系统签名,这个需求分为两步 1 在AndroidManifest.xml文件中添加如下图一句话 2 但是此时APP空具备系统权限但是无法安装,因为需要使用系统签名文件进行签名 ...
  • 最近在实现安卓设备重启的功能,最初利用下面方法实现的 try { Runtime.getRuntime().exec("su -c reboot"); } catch (IOException e) { Logger.d(Constant.TAG,"reboot:"+e.toString()); e.printStackTrace(); }...
  • Android 系统签名制作

    2018-01-22 10:45:49
    转载自:... 在Linux系统下。...1、Android 源码目录build\target\product\security 取platform.pk8 platform.x509.pem放到一个目录下 2、生成shared.priv.pem文件:
  • 通常,我们在做系统用户开发时,需要给应用加上系统签名,使其拥有系统权限,签名方式可以使用系统源码中的platform.pk8、platform.x509.pem、signapk.jar对应用签名,使用方法: java -jar signapk.jar platform...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,000
精华内容 21,600
关键字:

android系统签名