Linux下7zip命令apk中插入文件标识渠道批量打包

6 篇文章 0 订阅
2 篇文章 0 订阅

项目需要:需要对某个包分包,对渠道和下面的包做标记,但又不改变原包的签名,想到在原apk中插入某个带渠道号和包号的文件,服务器Linux环境,采用7zip 压缩格式解压,打包,插入文件到apk解压后的META-INF文件中

批量打包代码如下:

注意:传入的参数路径要先存在,Linux先安装7z 工具

#!/bin/bash

#参数:
# 1.原游戏包文件
# 2.游戏ID
# 3.渠道号
# 4.渠道开始打包的包号
# 5.打包个数
# 6.临时文件地址
# 7.存放分包的地址
source_apk_file="$1"
game_id="$2"
promote_id="$3"
subpkg_number="$4"
count="$5"
tmp_path="$6"
target_apk_path="$7"
pre_file_name="okwan"

if [ ! -d ${tmp_path} ];then
	mkdir -p ${tmp_path}
fi

if [ ! -d ${target_apk_path} ];then
	mkdir -p ${target_apk_path}
fi

tmp_apk_name="${tmp_path}game.apk"

#chmod 0777 $tmp_apk_name

#exit
#test rm -rf /data1/mgame/Resource/Subpackages/*
#test rm -rf /data1/mgame/Resource/SubpackageUnzip/*
#exit

for i in `seq $game_startapk_id $count`
do
	cp -a $source_apk_file $tmp_apk_name
	mkdir -p -m 777 "${tmp_path}META-INF/"
	touch ${tmp_path}META-INF/${pre_file_name}_${promote_id}_${i}
	cd ${tmp_path}
	7za a game.apk META-INF/${pre_file_name}_${promote_id}_${i}
	
	target_apk_file="${target_apk_path}${pre_file_name}_${game_id}_${promote_id}_${i}.apk"
	
	mv game.apk ${target_apk_file}

	if [ -f ${target_apk_file} ];then
		echo "{\"success\":1,\"file\":\"${target_apk_file}\",\"number\":${i}}"
	fi

	rm -rf "${tmp_path}*"
	
done
cd /
rm -rf ${tmp_path}




                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值