unity代碼加密for Android,mono編譯

來源:互聯網
上載者:User

標籤: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編譯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.