안 드 로 이 드 서명 공장
3000 단어 android
매일 사인 이 필요 해서 고민 하 는 사람 에 게 도움 이 됐 으 면 좋 겠 어 요.
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.
");
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
",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;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.