一次编译libmono.so的记录

首先这篇文章参考的是:

Unity3D-重新编译Mono加密DLL

Unity3D研究院之Android加密DLL与破解DLL .SO(八十一)

接着说一下我自己编译的过程步骤

编译平台:虚拟机OS X Yosemite

编译mono版本:mono-unity-4.6

NDK版本:android-ndk-r9

JDK版本:jdk1.8.0_20

工具清单以及下载地址(该fan墙的fan墙):

android-ndk-r9

JDK for Mac

mono-unity-4.6

准备工作:

brew的安装:打开终端输入ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

要输入密码的直接输入密码

接着安装autoconf automake libtool pkg-config,直接在终端依次输入

brew install autoconf

brew install libtool

brew install pkg-config

配置环境:

在终端中输入pico .bash_profile 打开环境配置表,填入以下配置,路径自己换成自己的

export PATH=${PATH}:/Users/admin/Desktop/android-ndk-r9
NDK_ROOT=/Users/admin/Desktop/android-ndk-r9
ANDROID_NDK_ROOT=/Users/admin/Desktop/android-ndk-r9
export NDK_ROOT
export ANDROID_NDK_ROOT
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/contents/home

接着.contrl + x 保存一下,再输入 Y确认,最后来个enter

修改sh脚本

修改/mono-unity-4.6/external/buildscripts/build_runtime_android.sh

约73行处:

把-fpic -g -funwind-tables改成-fpic -O2 -funwind-tables

约152行处:

clean_build "$CCFLAGS_ARMv5_CPU" "$LDFLAGS_ARMv5" "$OUTDIR/armv5"
clean_build "$CCFLAGS_ARMv6_VFP" "$LDFLAGS_ARMv5" "$OUTDIR/armv6_vfp"

改成

#clean_build "$CCFLAGS_ARMv5_CPU" "$LDFLAGS_ARMv5" "$OUTDIR/armv5"
#clean_build "$CCFLAGS_ARMv6_VFP" "$LDFLAGS_ARMv5" "$OUTDIR/armv6_vfp"

修改

约70行处:把

-fpic -g \改成-fpic \

添加解密代码:

在/mono-unity-4.6/mono/metadata/image.c中找到mono_image_open_from_data_with_name(约1077行处),在函数头部加入以下代码

if(name != NULL)
{
     if(strstr(name,"Assembly-CSharp.dll"))
     {
         data[0]-=1;
     }
}

完成添加后得到如下图所示:

开始编译:

把/mono-unity-4.6/external/buildscripts/build_runtime_android.sh复制到/mono-unity-4.6根目录下

打开终端,进入/mono-unity-4.6根目录,执行./build_runtime_android.sh

编译结束:

等待5分钟左右,提示编译成功后,进入/mono-unity-4.6/builds/目录下找到armv7和x86对应的.so文件,把他们复制到你的unity4.6.x版本的.so目录下替换掉旧的(旧的记得做下备份),如我的windows下unity4.6.9的目录是这样的

C:/Program Files (x86)/Unity/Editor/Data/PlaybackEngines/androidplayer/release/libs/armeabi-v7a/libmono.so

时间: 2024-10-08 19:34:59

一次编译libmono.so的记录的相关文章

mingw编译ffmpeg+x265过程记录

mingw编译ffmpeg+x265过程记录 email: [email protected] 工作环境 OS:windows 7 1.相关资源下载 Ffmpeg-2.3     http://ffmpeg.org/releases/ffmpeg-2.3.3.tar.bz2 X265-1.3下载  https://bitbucket.org/multicoreware/x265/wiki/Home http://ffmpeg.zeranoe.com/builds/source/external_

在linux环境下利用mmm命令编译android项目错误记录

此篇文章建立在之前的三篇文章的基础之上(本次内容主要参考老罗的<android源码情景分析一书>): 源码编译 内核编译 adb连接模拟器 ------------------------------------------------------------------------------------ 之后,在android源码环境中编写了一个简单的android程序HelloAndroid. 文件结构如下: ~/android/packages/experimental/HelloAn

win7 成功编译v8引擎过程记录

基本系统环境是win7+vs2010 下载V8源码: 有几种方式可以选择,工具使用svn和git均可,视下载源而定 直接从google的官网下载 svn checkout http://v8.googlecode.com/svn/trunk/ v8 (如果你可以连接的话,可以选择这种方式,反正我是连不了) 另一种方法是从www.github.com下载,上面有源码的官方备份,访问稳定,不像google的网经常被政府逼视.下载方法 svn checkout https://github.com/v

线上服务器PHP版本编译安装升级全记录

1.将原来的PHP重命名一下 cd /usr/local/bin/ mv php php.2.9 2.安装依赖 yum install gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel 报错,centos版本太老了,5.5,yu

一次U3D DLL加密的记录(二)

上一篇文章一次U3D DLL加密的记录(一)已经介绍了Assembly-CSharp.dll的加密和打包方法,但每次都得导出安卓工程,接着替换资源,再导出apk,这样以来是非常繁琐的. 这篇文章主要针对windows下对u3d游戏的加密一键打包的介绍 主要步骤: ①:编译加密后的libmono.so ②:在自定义方法中对Assembly-CSharp.dll进行加密 ③:破解UnityEditor.Android.Extensions.dll,注入自定义方法 ④:一键打包 首先参考一下我的<一次

一次U3D DLL加密的记录(一)

这篇文章主要针对windows下对u3d游戏的加密过程 主要步骤: ①:编译和替换加密后的libmono.so ②:导出安卓工程 ③:加密和替换Assembly-CSharp.dll ④:用eclipse等工具导出apk 首先参考一下我的<一次编译libmono.so的记录> 接着把项目导出成安卓工程,在xxx/assets/bin/Data/Managed下找到Assembly-CSharp.dll,然后写个文件读写程序进行破坏c#程序集结构,从而达到该程序集解不开的目的 示例程序代码如下:

Ubuntu16.04编译Android6.0/cm13.0教程及相关错误解决办法

一.必备工作 1.安装依赖库 sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib git flex bison gperf build-essential libncurses5-dev:i386 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev libsdl1.2-dev li

Mac上编译并运行Android5.0源码

下载.配置环境.build和运行参考的都是Android Source提供的文档,包括:Initializing a Build Environment,Downloading the Source和Building the System. 我是在OSX 10.10.3上编译的AOSP,记录一下中途碰到的各种问题. 下载 AOSP需要FQ,而且经常会断,还好是断点续传,坚持个两三天怎么也能下下来. case sensitive system 我在Mac上对file system只会用Disk U

Ubuntu 14.04 编译 Android 4.2.2 for Tiny4412

. . . . . 在学校里是用 Redhat 6.4 编译的 Android 4.2.2 很顺利,把源码包拷贝到笔记本上的 Ubuntu 14.04 上再编译遭遇了各种坑,所以便有了这篇博客记录解决每一个坑的过程.所幸这些坑解决起来还不算复杂,稍微 Google 一下就找到了解决方案. 1.首先是安装 JDK 和 arm-linux-gcc 工具链,这两步只是解压缩之后配置环境变量就行了,所以这里就不再赘述了. 注意 JDK 必须采用 1.6 版本的,据说 android 4.x 都需要使用标