linux系统上php执行apk签名的方法
来源:互联网 发布:软件系统设计方案 编辑:程序博客网 时间:2024/05/21 15:05
linux系统上php执行apk签名的方法
当时为应法国客户的需求做的签名服务器,服务器当时我是用php和thinkphp 框架做的。这块我就不多讲了,不懂得同学可以自行百度学习。我主要讲我在实现签名服务器的算法和思路。
废话不多说,直接上代码:
private function signature(
$filepath,$apkname,$keystore,$aliasName,$suess,$keystorepass){
if(file_exists($filepath.$apkname) && file_exists($filepath.$keystore)){//判断文件是否存在
//$decod =json_decode($json);
// echo $json;
// $file = fopen($_SERVER['DOCUMENT_ROOT']."/data.php",'w+');
//fwrite($file, $json);
//fclose($file)
mkdir($filepath."test/");//创建路径
chmod($filepath."test/",0777);//给文件夹赋权限
$sudounzip = system("unzip ".$filepath.$apkname." -d ".$filepath."test"); //系统执行liunx命令解压Apk到test文件夹下
$test=$filepath."test";//
//删除test文件夹下的旧的签名文件
$removeMeta = system("rm -rf ".$test."/META-INF");
//退出文件夹将删除后的apk文件打包
$zipapk = system("cd ".$filepath."test/ && zip -q -r sigalg_".$apkname." ./*");
//修改打包后的apk文件名
$removeapp=system("cd ".$filepath."test/ && mv sigalg_".$apkname." ".$filepath."sigalg_".$apkname);
//删除旧的无用文件
$remvtest=system("rm -rf ".$test);
$rmsigalg = system("rm -rf ".$filepath.$apkname);
//进行系统签名
$result = system("jarsigner -verbose -keystore ".$filepath.$keystore." -storepass ".$keystorepass." -signedjar ".$filepath."signed_".$apkname." -digestalg SHA1 -sigalg MD5withRSA ".$filepath."sigalg_".$apkname." ".$aliasName);
//删除签名前的文件
$rmsigalg = system("rm -rf ".$filepath."sigalg_".$apkname."&& echo 1");
//更改签名后的文件名
$rename=system("cd ".$filepath." && mv signed_".$apkname." ".$filepath.$apkname."&& echo 1");
if($rename){
echo "<h1>SignatureAPK succeed!</h1>";
$suess = "y";
}else{
echo "<h1>SignatureAPK fail!</h1>";
$suess = "no";
}
//echo $rmsigalg."<br>";
}else{
echo "<h1> apk ro keystore can not exist !</h1>";
}
//echo $suess."llllllll";
//保存各个变量名到session里
$_SESSION["keyname"]= array($keystorepass,$aliasName,$suess);
}
其中的变量$filepath 文件路径、$apkname 要签名的apk、 $keystore签名文件keystore、$aliasName别名、$suess成功标识、$keystorepass签名文件keystore对应的签名密钥
- linux系统上php执行apk签名的方法
- 给apk系统签名的方法
- PHP在linux上执行外部命令的方法
- PHP在linux上执行系统命令
- 获取apk签名的方法
- apk签名的多种方法
- APK重新签名的方法
- android 系统开发APK签名方法
- 在Win64系统上加载无签名驱动的方法
- Android初学------编译系统签名的apk
- 自动生成带系统签名的apk
- 查看APK的签名的方法
- 查看APK的签名的方法
- 查看APK的签名的方法
- 查看APK的签名的方法
- 查看APK的签名的方法
- 查看APK的签名的方法
- 查看APK的签名的方法
- 阿里云 CDN HTTPS 最佳实践——动态密钥套件(三)
- 数据科学与大数据技术(十一周)-课件and课后习题
- Win10 U盘安装教程
- Web开发之不用Tomcat服务器框架直接Socket通信
- 安全认证框架Shiro (二)- shiro过滤器工作原理
- linux系统上php执行apk签名的方法
- R语言shiny包,编写的指标相关性的实例
- 5. UE4的结构体及结构体数组
- FZU 2242
- 百度富文本编辑器(ueditor)自定义上传接口(路径)
- Ionic(一)环境搭建
- 安装laravel-ide-helper增强代码提示
- MySQL对列排序,分组排序
- Android Studio手动配置Gradle的方法