Android 给空白包签名并上传审核

前言:之前公司app在腾讯开放平台认领应用时,涉及了一个问题:就是给空白包签名。然后再上传上去审核。

应用能在Android 系统上安装必须是经过有私有key的证书数据签名。Android系统通过证书确定应用的作者,和与应用建立信任关系。证书不会用于控制应用的安装。证书不需要权威机构签名:它是非常完美和标准。

关于签名的一些重要点:

•所有的应用必须签名(android 有默认签名)。
•测试和调试应用,构建工具用指定的调试密钥(android sdk 构建工具创建的)签名你的应用。
•在发布给终端用户之前要用合适的密钥签名应用,不能用调试密钥签名将要发布的应用。
•可以用自己签名的证书签名自己的应用。
•Android 系统仅仅会在应用安装的时候检查证书的有效期。如果应用在安装之后过期,那么应用还会正常运行。
•我们可以用标准的工具-Keytool 和 Jarsigner - 生成密钥和签名应用。
•在完成签名之后,发布之前,需要使用zipalign 工具优化最终的apk 包。

Android 系统不能安装和运行没有正确签名的包。

腾讯开放平台的官方说明如下,

如何签名:

jarsgner-verbose-keystore[keystorePath]-singnedjar [apkOut] [apkln] [alias]

jarsgner命令格式:-verbose输出详细信息-keystore密钥库位置-alias demo.keystore 别名 demo.keystore

-keyalg RSA 使用RSA算法对签名加密
-validity 40000 有效期限4000天
-keystore demo.keystore
D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore

/* 说明:-verbose 输出签名的详细信息 */

例如

D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore

android给未签名的apk签名命令。

准备文件

1、tap_unsign.apk(未签名的apk)
2、shanhy.keystore(签名证书文件)

命令语法:

jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkIn] [alias]

例 子:

jarsigner -verbose -keystore G:\shanhy.keystore -signedjar G:\signed.apk G:\tap_unsign.apk shanhy

[keystorePath] 后面是绝对路径G:\shanhy.keystore
[apkOut] 生成签名的apk的位置
[apkIn] 参数代表在腾讯应用中心下载的未签名apk,默认名称为tap_unsign.apk
[alias] 是G:\shanhy.keystore 的别名

jarsigner这个exe在C:\Program Files\Java\jdk1.7.0_10\bin文件夹下。所以要用cmd进入这个文件夹

然后使用下面命令

代码如下:

jarsigner -verbose -keystore G:\shanhy.keystore -signedjar G:\signed.apk G:\tap_unsign.apk shanhy

我遇到一个奇葩问题是:

公司的apk签名证书是没有后缀名.keystore,只有这个android_star_key的签名证书。别名是android_key

这种问题要就不要加后缀名了,如下。

jarsigner -verbose -keystore G:\android_star_key -signedjar G:\signed.apk G:\tap_unsign.apk android_key

(0)

相关推荐

  • 如何安装系统认证签名过的APK

    解决方法有如下两种: 第一种 如果你 repo sync 了 android 的整个源码,那么可以直接把你的 app 放到 /packages/apps 下面去 mm ,不过要记得在 Android.mk 中增加 LOCAL_CERTIFICATE 属性,这个属性具体有三个值: 系统中所有使用 android.uid.system 作为共享 UID 的 APK ,都会首先在 manifest 节点中增加android:sharedUserId="android.uid.system",

  • android实现给未签名的apk签名方法

    android给未签名的apk签名命令. 准备文件 1.unsign.apk(未签名的apk) 2.shanhy.keystore(签名证书文件) 命令语法: jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkIn] [alias] 例 子: jarsigner -verbose -keystore shanhy.keystore -signedjar signed.apk unsign.apk shanhy

  • Android Apk去掉签名以及重新签名的方法

    Android Apk去掉签名以及重新签名的方法 Android开发中很重要的一部就是用自己的密钥给Apk文件签名,不经过签名的Apk文件一般是无法安装的,就算装了最后也是失败. 网上流传的"勾选允许安装未知来源的应用"其实跟签不签名没啥关系,说白了就是允许安装不从电子市场上下载的应用而已. 近几日需要修改一个Apk中JNI调用的.so文件,苦于没有apk源代码,只好研究了一下签名相关的问题.当然有很多第三方工具可以做到,但其实JDK中已经提供了强大的签名工具jarsigner. 1.

  • 给Android的APK程序签名和重新签名的方法

    签名工具的使用 Android源码编译出来的signapk.jar既可给apk签名,也可给rom签名的.使用格式: java –jar signapk.jar [-w] publickey.x509[.pem] privatekey.pk8 input.jar output.jar -w 是指对ROM签名时需使用的参数 publickey.x509[.pem] 是公钥文件 privatekey.pk8 是指 私钥文件 input.jar 要签名的apk或者rom output.jar 签名后生成

  • Android 给空白包签名并上传审核

    前言:之前公司app在腾讯开放平台认领应用时,涉及了一个问题:就是给空白包签名.然后再上传上去审核. 应用能在Android 系统上安装必须是经过有私有key的证书数据签名.Android系统通过证书确定应用的作者,和与应用建立信任关系.证书不会用于控制应用的安装.证书不需要权威机构签名:它是非常完美和标准. 关于签名的一些重要点: •所有的应用必须签名(android 有默认签名). •测试和调试应用,构建工具用指定的调试密钥(android sdk 构建工具创建的)签名你的应用. •在发布给

  • Android apk 项目一键打包并上传到蒲公英的实现方法

    项目一键打包并上传到蒲公英 缘由:测试流程由 打包 找包准备上传 填写更新信息 然后上传 过于复杂 所以想要简化开发 阅读须知:需要读者了解如何在项目里面建立一个空的gradle plugin的过程,否则这篇文章不适合你 开始分析 我想要的效果是精简步骤 比如说输入某个 命令 .\gradlew xxxx 就可以完成我想要的效果 那么首先我们必须得熟知或者完成以下几点: 包路径 打包完成的回调 入口设置参数 设置要传的参数 使用gradle来开发 基于以上几点开始开发 最重要的一点 打包完成的回

  • Android使用ftp方式实现文件上传和下载

    近期在工作上一直再维护平台OTA在线升级项目,其中关于这个升级文件主要是存放于ftp服务器上的,然后客户端通过走ftp协议方式下载至本地Android机进行一个系统升级操作.那么今天将对ftp实现文件上传和下载进行一个使用总结,关于ftp这方面的理论知识如果不是太了解的各位道友,那么请移步HTTP和FTP的区别的一些理论知识 作个具体的了解或者查阅相关资料.那么先看看个人工作项目这个OTA升级效果图吧.如下: 下面是具体的接口实现: 那么相关ftp的操作,已经被封装到ota.ftp这个包下,各位

  • Android使用ftp方式实现文件上传和下载功能

    近期在工作上一直再维护平台OTA在线升级项目,其中关于这个升级文件主要是存放于ftp服务器上的,然后客户端通过走ftp协议方式下载至本地Android机进行一个系统升级操作.那么今天将对ftp实现文件上传和下载进行一个使用总结,关于ftp这方面的理论知识如果不是太了解的各位道友,那么请移步HTTP和FTP的区别的一些理论知识 作个具体的了解或者查阅相关资料.那么先看看个人工作项目这个OTA升级效果图吧.如下: 下面是具体的接口实现: 那么相关ftp的操作,已经被封装到ota.ftp这个包下,各位

  • Android Studio 新建项目通过git上传到码云图文教程详解

    作为一个合格的开发人员,对项目进行管理自然必不可少.今天就给各位看客介绍一下如何用git将自己的AS项目上传到码云.    一  创建远程码云代码仓库 首先我们打开码云,注册一个账号,接着在左上角处点击加号新建一个远程的项目仓库用于待会AS项目的上传,具体如下: 按照上图所示,点击创建即生成远程代码仓库.     二 开始进行AS代码的上传 首先我们打开新建好的AS项目,点击AS顶部的如下: 接着点击项目名称如下将项目加入到本地的git仓库中 之后红色的字体会变成绿色. 接着点击顶部vcs上传代

  • Android ProgressDialog用法之实现app上传文件进度条转圈效果

    ProgressDialog 继承自AlertDialog,AlertDialog继承自Dialog public class ProgressDialog extends AlertDialog ProgressDialog的创建方式有两种,一种是new ProgressDialog,一种是调用ProgressDialog的静态方法show()创建并显示,这种进度条只能是圆形条. ProgressDialog dialog = ProgressDialog.show(this, "提示&quo

  • Android使用Volley框架定制PostUploadRequest上传文件

    发现问题 项目中有发表动态的功能,该功能可以将文本和图片上传至服务器. Volley通过定制PostUploadRequest实现文件上传的功能,本文以一张图片上传为例. 数据格式 以下为项目中图片上传实例的数据格式 多张图片上传可通过添加--WebKitFormBoundary 内容实现 POST /CloudLife/user/social HTTP/1.1 Host: localhost Connection: keep-alive Cache-Control: max-age=0 Acc

  • Android选择图片或拍照图片上传到服务器

    最近要搞一个项目,需要上传相册和拍照的图片,不负所望,终于完成了!  不过需要说明一下,其实网上很多教程拍照的图片,都是缩略图不是很清晰,所以需要在调用照相机的时候,事先生成一个地址,用于标识拍照的图片URI 具体上传代码: 1.选择图片和上传界面,包括上传完成和异常的回调监听 package com.spring.sky.image.upload; import java.util.HashMap; import java.util.Map; import android.app.Activi

  • Android使用xUtils3.0实现文件上传

    几个月前写过一篇博客<xUtils3.0框架学习笔记> ,上面也有记录通过xUtils实现文件上传的使用方法,代码如下: private void upLoadOnClick(View v) { String upUrl = "/mnt/sdcard/pic/test.jpg";//指定要上传的文件 final ProgressDialog dia = new ProgressDialog(this); dia.setMessage("加载中....")

  • 浅析Android 快速实现图片压缩与上传功能

    由于最近项目更新功能比较的忙,也没时间去整理自己的知识点和管理自己的博客.在Android对手机相册中的图片的压缩和上传到服务器上,这样的功能在每个app开发中都会有这样的需求.所以今天就对android端怎么快速实现图片压缩和上传进行简单的分析. 首先需要对图片进行压缩,这方面可以使用第三方的库,我在实际的开发中使用的是 compile 'top.zibin:Luban:1.0.9'使用也比较的方便,代码如下: /** * * @param path 代表的是图片的uri路径 */ priva

随机推荐