• 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

    《一》加密原理
    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,需要翻墙,呵呵。。也放到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.

      

     

  • 相关阅读:
    静态化之优化
    SEO小技巧
    apache 工具和简单优化
    apache rewrite机制
    nginx php win平台配置
    mvc 简单模型
    php无限分类三种方式
    【转】sqlserver查询数据库中有多少个表
    【转】sqlserver数据库之间的表的复制
    SET ANSI_NULLS (TransactSQL)
  • 原文地址:https://www.cnblogs.com/July7th/p/4736502.html
Copyright © 2020-2023  润新知