发现一款不错的游戏,是用unity 3d 开发的,想提取资源看看,网上搜了些资料,总结一下,做个备忘。
- 如何是否为 unity3d 引擎开发,
.ipa 文件是压缩文件的格式,我们用可以用 tar zxvf xxx解压,或者找个解压工具也可以,如:betterZip 。会找到 xxx.app的文件,其实是个文件夹,在mac下显示包内容就可以看到里面的资源,如果发现有 *.assets 文件,那么恭喜,这就是unity 3D 做的,
- 提取资源大致分为两个步骤:
1)、从assets 中提取 资源文件,*.ktx
参考工具 https://github.com/ata4/disunity/releases
2)、将提取出来的ktx 转换成 png
参考工具 http://community.imgtec.com/files/mac-osx-installer-powervr-tools-sdk-3-5/
disunity_v0.3.4 和 Imagination 两个文件夹为上面两个地址下载的解压工具。
附extract.sh 脚本如下
#!/bin/bash
#调优JVM参数
JVM_PARAMS='-Xms1024m -Xmx10240m'
DISUNITY_BASEDIR=./disunity_v0.3.4
IMAGINATION_BASEDIR=./Imagination
BASEDIR=$(dirname "$0")
FILE=$1
#解压文件
FILE_DIR=$1.`date "+%Y-%m-%d-%H%M"`
if [ -e $FILE_DIR ]; then
rm -rf $FILE_DIR;
fi
mkdir $FILE_DIR
tar zxvf $FILE -C $FILE_DIR
shopt -s nullglob
function extractAssets(){
for file in $(find $FILE_DIR -name '*.assets')
do
java -jar $JVM_PARAMS $DISUNITY_BASEDIR/disunity.jar extract $file
done
}
function convertKtx(){
for file in $(find $FILE_DIR -name '*.ktx')
do
$IMAGINATION_BASEDIR/PowerVR_Graphics/PowerVR_Tools/PVRTexTool/CLI/OSX_x86/PVRTexToolCLI -i $file -d -f r8g8b8a8
done
}
echo '=========extractAssets=========='
extractAssets
echo '=========convertKtx=========='
convertKtx
echo '=========del *.ktx *.pvr *.assets=========='
# 删除冗余资源
find $FILE_DIR -name "*.ktx" |xargs rm -rf
find $FILE_DIR -name "*.pvr" |xargs rm -rf
find $FILE_DIR -name "*.assets" |xargs rm -rf