随手写的一个签名程序,Linux内核监听(监听文件夹内文件的变化),只要将你的文件后缀改成unsigned.apk放入到监听的目录即可快速签名。
希望对需要天天签名而烦恼的人有用哈。
http://weibo.com/myzoooo
#include <unistd.h>
#include <sys/inotify.h>
#include <stdio.h>
#include <string.h>
#define MAX_BUF_SIZE 1024
#define CHECK_PATH "/home/ffly/Desktop"
int check_name(char *apk_name);
int sign_apk(char *apk_name,char *apk_path);
int check_dir(char *path)
{
int fd, wd;
int len, index;
char buffer[MAX_BUF_SIZE];
struct inotify_event *event;
fd = inotify_init();
if(fd < 0){
printf("Failed to initialize inotify.\n");
return 1;
}
wd = inotify_add_watch(fd, path,IN_CLOSE_WRITE | IN_MOVED_TO);
if(wd < 0){
printf("Can't add watch for %s", path);
return 1;
}
while(len = read(fd, buffer, MAX_BUF_SIZE)){
index = 0;
while(index < len){
event = (struct inotify_event *)(buffer+index);
if(event->wd != wd)
continue;
if((event -> mask & IN_CLOSE_WRITE) || (event -> mask & IN_MOVED_TO)){
int boolean;
char pathbuff[512];
boolean = check_name(event->name);
sprintf(pathbuff,"%s/%s",CHECK_PATH,event->name);
if(boolean){
sign_apk(event->name,pathbuff);
}
}
index += sizeof(struct inotify_event)+event->len;
}
}
return 0;
}
int check_name(char *apk_name){
int len,fix_len,idx,j,count;
char a,b;
char fix[] = "unsigned.apk";
len = strlen(apk_name);
fix_len = strlen(fix);
count =0;
if(len<=fix_len)
return 0;
for(idx = len-fix_len,j = 0;idx<len;idx++,j++){
a = apk_name[idx];
b = fix[j];
if(a == b){
count++;
}else{
count =0;
j=0;
}
if(count == fix_len)
return 1;
}
return 0;
}
int sign_apk(char *apk_name,char *apk_path){
pid_t child_id;
child_id = fork();
char new_path_buf[512];
sprintf(new_path_buf,"%s-signed.apk",apk_path);
printf("signed fileName:%s\n",apk_name);
if(child_id==0){
execl("/usr/bin/jarsigner","jarsigner","-storepass","ffly20110811","-keystore","/home/ffly/bin/lib/signapk_key/ffly.keystore","-signedjar",new_path_buf,apk_path,"ffly.keystore",(char *)0);
}
return 0;
}
int main(){
check_dir(CHECK_PATH);
return 0;
}
分享到:
相关推荐
一、Android签名机制--基础概念 1. 消息摘要算法 2. 非对称加密算法(RSA算法) 3. 数字签名 二、Android签名机制--APK签名过程 1. APK签名概述 2. APK签名相关的文件 3. 签名的过程(MANIFEST.MF) 4. 签名的过程...
Android签名生成工具和签名格式转换工具,方面快捷,很实用
Android系统签名工具
android 签名工具.
Windows版本 Android Apk签名工具
3.用于android.uid.system,需要使用Android源码签名文件签名的情况。 4.签名后的apk,即可安装到Android系统。 5.注意,签名文件需要你自己Android源码系统的,我这里不提供。build/target/product/security 就是这...
生成 Android 签名文件的方法。 ossez.com
Android签名生成工具、签名格式转换,用于生成各种格式的MD5和SHA1签名,
3:如果出现 Unsupported major.minor version 52.0 则表示该文件的版本与本地的jdk版本不匹配 经测试 jdk1.7.0使用1.05版本的AndroidKeystore jdk1.8.0使用1.07版本的AndroidKeystore (资源里面两个版本的都有) ...
android平台工厂测试模式代码,主要用于输入指令测试平台硬件。
android系统签名,模拟器可用,用法见readme
此文件包含生成android签名文件keystore及验证的源码还包含生成的keystore文件。放到项目中即可使用
Android MAC 签名工具
android 系统签名
android原生系统签名文件 (也可通过以下网址下载 http://androidxref.com/9.0.0_r3/xref/build/target/product/security/
android签名工具包含windows/linux/mac(支持Linux&MAC;下批量签名)
android系统签名工具,用此工具可以生成系统签名文件,使用android studio开发的apk可以用此文件签名
Android签名经典教程 Android签名经典教程 Android签名经典教程
Android签名证书文件的解析和签名校验的加强
mac版android apk签名工具包,实现加密apk二次签名打包,简单好用又方便!