服务器安装php环境

下载 android-sdk-windows  下载JDK

1.打开zip支持 c:/windows/php.ini ,打开 exec

2.apk 支持
mime添加 .apk application/vnd.android.package-archive

3.安装javaSDK(要和android的编辑版本一致)

4.编辑IIS绑定权限(www:www) ,目录没有权限会导致生成失败

5.配置两个虚拟主机

A:down.coolaj.cn  用于下载

B:make.cookaj.cn  用于制作签名

6. down的index.php

<?php
/*
* Created on 2012-5-21
* coolaj.cn
*/ // var_dump($id); function cocode() { foreach($_GET as $k=>$v){
$id = $k;
break;
}
if($_GET['u']){
$id=$_GET['u'];
}
if(is_numeric($id)){
return $id;
}elseif ($id && preg_match('/^U/', $id)) {
$id = base64_decode(substr($id,1).'=')>>2;
return $id;
}
} $id = cocode(); if(file_exists('bbshenqi'.$id.".apk") || empty($id)){
if(empty($id)){
header('Location: http://www.coolaj.cn/bbshenqi.apk');
exit;
}
header('Location: http://down.coolaj.cn/bbshenqi'.$id.'.apk');
}else{
$cc =file_get_contents("http://make.coolaj.cn/makeapk.php?apkname=".$id.'&r=简单加密');
if($cc == 'ok'){
if(file_exists('bbshenqi'.$id.".apk")){
echo '<meta http-equiv="content-type" content="text/html; charset=gbk" />';
echo '<a href="http://down.coolaj.cn/bbshenqi'.$id.'.apk">生成失败,点击重试</a>';
exit;
}
header('Location: http://down.coolaj.cn/bbshenqi'.$id.'.apk');
}
} ?>
 

7.makeapk.php

<?php
set_time_limit(0);
function zip($dir,$filename,$missfile=array(),$addfromString=array()){
if(!file_exists($dir) || !is_dir($dir)){
die(' can not exists dir '.$dir);
}
if(strtolower(end(explode('.',$filename))) != 'zip'){
die('only Support zip files');
}
$dir = str_replace('\\','/',$dir);
$filename = str_replace('\\','/',$filename);
if(file_exists($filename)){
die('the zip file '.$filename.' has exists !');
}
$files = array();
getfiles($dir,$files);
if(empty($files)){
die(' the dir is empty');
} $zip = new ZipArchive;
$res = $zip->open($filename, ZipArchive::CREATE);
if ($res === TRUE) {
foreach($files as $v){
if(!in_array(str_replace($dir.'/','',$v),$missfile)){
$zip->addFile($v,str_replace($dir.'/','',$v));
//$zip->addFile($v,str_replace($dir.'/','./',$v));
}
}
if(!empty($addfromString)){
foreach($addfromString as $v){
$zip->addFromString($v[0],$v[1]);
}
}
$zip->close();
//echo 'unsigin apk ok!<br>';
} else {
echo 'failed';
}
} function getfiles($dir,&$files=array()){
if(!file_exists($dir) || !is_dir($dir)){return;}
if(substr($dir,-1)=='/'){
$dir = substr($dir,0,strlen($dir)-1);
}
$_files = scandir($dir);
foreach($_files as $v){
if($v != '.' && $v!='..'){
if(is_dir($dir.'/'.$v)){
getfiles($dir.'/'.$v,$files);
}else{
$files[] = $dir.'/'.$v;
}
}
}
return $files;
} function file_content_replace($filename, $search, $replace){
$string = file_get_contents($filename);
$new_string = str_replace($search, $replace, $string);
if($string !=$new_string) file_put_contents($filename, $new_string);
} function goapk ($file){
exec("del bbshenqi.zip");
exec("del bbshenqi.apk");
exec("del gosign.bat");
exec("del D:\android\apk\bbshenqi\assets\unionid.txt");
exec("copy /Y demo.bat gosign.bat");
file_content_replace("gosign.bat","00000.apk",$file.'.apk');
exec('echo '.$file.'>D:\android\apk\bbshenqi\assets\unionid.txt');
zip("bbshenqi", "bbshenqi.zip");
exec("copy /Y bbshenqi.zip bbshenqi.apk");
exec("gosign.bat");
}
if($_GET['apkname']){
$name = $_GET['apkname'];
$r= $_GET['r'];
if($r=='yourpass'){
goapk($name);
echo 'ok';
} }
exit; ?>
 

8.demo.bat

 
"C:/Program Files/Java/jdk1.6.0_45/bin/jarsigner" -verbose -keystore key.keystore -storepass yourpass -storetype jks -sigfile CERT -signedjar bbshenqi_signed.apk bbshenqi.apk key.keystore
"D:\android\android-sdk-windows\tools\zipalign" -v 4 bbshenqi_signed.apk d:\apk\bbshenqi00000.apk
del bbshenqi_signed.apk
del bbshenqi.apk
 

windows下PHP批量生成打包android程序APK-渠道txt植入apk文件的更多相关文章

  1. windows下使用adb工具查看android程序cpu和内存消耗情况

    在实际的开发当中,尤其软件运行在一个硬件设备比较差的环境下,对软件占用资源大的问题是开发者们必须要解决的问题,系统比较卡.觉得应该看看程序的cpu和内存消耗 一直以来都在windows下编程,已经习惯 ...

  2. MAC下配置gradle用eclipse 打包android程序

    1.下载gradle binhttp://gradle.org/gradle-download/ 2.配置gradle,http://www.douban.com/note/311599602/htt ...

  3. Windows下将ImageMagick移植到Android平台

    Windows下将ImageMagick移植到Android平台 原文链接  http://www.pedant.cn/2014/06/18/imagemagick-ported-android/ I ...

  4. 用Ant手动打包android程序,android分包机制解决65536方法过多异常

    Android利用ant手动打包 首先我们要给自己的IDE eclispe配置ant,默认的eclipse是集成了ant构建工具的,但是google提供的Android集成开发工具ADT,里面封装了E ...

  5. windows下如何批量修改文件名

    windows下如何批量修改文件名 一.总结 一句话总结:就是用excel生成了多条修改文件名的dos命令然后执行,比较核心的就是把图片名称导入excel 将图片名称导入excel---编写如下DOS ...

  6. Windows 下使用OpenSSL生成RSA公钥和私钥

    Windows 下使用OpenSSL生成RSA公钥和私钥 (1)下载OpenSSL 可到该地址下载OpenSSL: https://www.openssl.org/source/(https://ww ...

  7. sencha touch 扩展篇之将sencha touch打包成安装程序(下)- 使用phonegap打包安装程序

        这讲我们来讲解下如何使用phonegapa创建项目环境并通过她们将sencha touch打包成app,这里我们只讲解打包android的apk,打包ios的过程有点类似,但是需要在mac环境 ...

  8. Windows 下使用 mingw+msys 交叉编译 Android Unity Mono

    对于没有升级到 Unity5.4的用户,发布安卓版本都会有对 C# 脚本进行加密的需求,我们项目在裸奔了很长时间后,决定开始做这件事. 网上查看了很多资料,我很希望直接在 windows 下编译而不去 ...

  9. windows下Qt5.1.0配置android环境搭建 good

    1.首先下载好需要配置的软件: 1>Qt 5.1.0 for Android (Windows 32-bit, 716 MB)(Info)下载地址: http://qt-project.org/ ...

随机推荐

  1. google protobuf ios开发使用

    简介: protobuf 即 google protocol buffer 是一种数据封装格式协议: 比如其他经常用的xml,json等格式:protobuf的优势是效率高,同样的一份数据使用prot ...

  2. 0050 Linux VIM 命令

    1.  模式切换 vim的模式 $ vi filename 进入normal 模式,这是命令模式,用于执行大多数常用的编辑命令,不能输入 敲i 进入 insert 模式,这是正常的编辑模式,按Esc ...

  3. Linux 远程登录

    Linux一般作为服务器使用,而服务器一般放在机房,你不可能在机房操作你的Linux服务器. 这事我们就需要远程登录到Linux服务器来管理维护系统. Linux系统中是通过ssh服务实现的远程登录功 ...

  4. Android DisplayMetrics类获取屏幕大小

    DisplayMetrics public class DisplayMetrics   extends Object java.lang.Object     ↳ android.util.Disp ...

  5. "struct"类型重定义解决办法

    #ifndef 在头文件中的作用 在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量 “重定义”的错误. 在头文件中使用#ifndef #d ...

  6. 【必备】史上最全的浏览器 CSS & JS Hack 手册(转)

    浏览器渲染页面的方式各不相同,甚至同一浏览器的不同版本(“杰出代表”是 IE)也有差异.因此,浏览器兼容成为前端开发人员的必备技能.如果有一份浏览器 Hack 手册,那查询起来就方便多了.这篇文章就向 ...

  7. MVC5 + EF6 入门完整教程一:从0开始

    第0课 从0开始 ASP.NET MVC开发模式和传统的WebForm开发模式相比,增加了很多"约定". 直接讲这些 "约定" 会让人困惑,而且东西太多容易忘记 ...

  8. ioS基础篇(十九)——UIResponder简析

    UIResponder类定义了对象相应和控制事件的接口,他是UIApplication.UIView的超类,这类的实例通常被称为应答对象. 一.Responder对象 在iOS系统中,能够响应并处理事 ...

  9. iwebshop 订单存库修改为下单件库存

    //减少库存量 $orderGoodsDB = new IModel('order_goods'); $orderGoodsList = $orderGoodsDB->query('order_ ...

  10. enmo_day_04

    数据库名称 : PROD1 update employees set salary = salary + 1000 where LAST_NAME = ‘Bell’; select LAST_NAME ...