unity代码加密for Android,mono编译
uinty3d加密推荐几篇比较好的博客链接:
http://www.cppcourse.com/u3d-encryption.html
http://www.xuanyusong.com/archives/3553
http://m.blog.csdn.net/blog/yy405145590/41205283
http://blog.sina.com.cn/s/blog_799860f90102vp0l.html
《一》加密原理
《二》NDK安装
1.下载unity对应版本的mono源代码,官方地址:https://github.com/Unity-Technologies/mono/,
2.重编mono,因为作者用的win7系统,开始是用cygwin,结果各种失败,所以就装了虚拟机VMware Workstation,然后你需要下载一个Linux的系统ISO镜像文件,笔者当时下载的是ubuntu-14,大小大概在1G左右,然后就是把镜像文件安装到虚拟机上咯~~安装后大概的样子是这样的
3.进入Ubuntu系统,我在Home目录里面新建了一个目录monobuild,打开Terminal命令行模式,
$ mkdir monobuild
然后把下载的mono源代码zip文件放到这个目录里面(只能从windows上拖到这个目录就可以了),这个时候输入
$ ls
就能看到有monobuild这个目录了
4.解压mono,进入monobuild目录
$ cd monobuild
执行解压命令
$ unzip mono-unity-4.6.zip
5.下载NDK安装包,这个时候你要看看/mono-unity-4.6/external/buildscripts/build_runtime_android.sh文件第13行左右看看unity用的NDK版本
然后到官网下载对应版本的NDK,安装
6.安装好后,ndk配置,输入
$ gedit ~/.bashrc
在打开的文件的末尾添加
export NDK_HOME=/home/anyq/monobuild/android-ndk-r9
export PATH=$PATH:$NDK_HOME
其中NDK_HOME等号后面是的是ndk的路径,可以用pwd命令输出当前的路径查看
输入
$ source ~/.bashrc
使其立即生效.
7.ndk验证,输入
$ nkd-build
如果没有提示 commond not found就是成功了。
《三》SDK安装(可以不安装)
1.官网下载AndroidSDK,需要FQ,呵呵。。也放到monobuild目录。
2.这个时候需要解压,比我笔者下载的是 android-sdk_r24.3.3-linux.tgz ,输入
tar -zxvf android-sdk_r23.0.2-linux.tgz
3.和ndk一样在bashrc末尾加入
export ANDROID_HOME="/home/anyq/android-sdk-linux" export PATH="$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools"
《四》编译
1.拷贝 mono-unity-4.6/external/buildscript/build_runtime_android.sh 到 mono-unity-4.6/ 根目录中。
2.切换到mono-unity-4.6/ 目录中,使用 root 运行 build_runtime_android.sh
./build_runtime_android.sh
3.会提示没有安装Git
sudo apt-get install git
4.修改 build_runtime_android.sh Line 113 ,改为:
(cd "$KRAIT_PATCH_PATH" && perl ./build.pl)
5.然后修改 mono-unity-4.6/external/android_krait_signal_handler/build.pl
(这是脚本调用git clone过来的 https://github.com/Unity-Technologies/krait-signal-handler/)
删掉第一行
#!/usr/bin/env perl -w
6.继续运行出错,提示 ANDROID_NDK 版本不对,又要下载,下载又失败,修改成我们自己的版本。
找到build.pl ,修改BuildAndroid 函数里面的 r9 为 自己下载的版本 r10e
7.修改android-ndk-r10e目录下的RELEASE.TXT
改为 :r10e
8.external/android_krait_signal_handler/jni/Application.mk 文件
TOOLCHAIN_VERSION := clang3.3 改成 TOOLCHAIN_VERSION :=4.8
9.
然后继续编译
提示没有 autoreconf
使用下面命令安装autoreconf:
sudo apt-get update sudo apt-get install autoconf
同样的方法,顺便把下面的包都安装一下
* autoconf * automake * bison * gcc * gettext * glib >= 2.0 * libtool * make * perl
10.如果运气好就能编译成功了
可以看到 打包成功,lib在builds/embedruntions/android.