標籤:env int port ace .com one bash term uil
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
《一》加密原理1、unity3d是基於mono的,而mono是開源的,我們重編mono,並加入加密和解密的演算法,產生so檔案,替換unity工程中的so。《二》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.
unity代碼加密for Android,mono編譯