一次编译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
工具清单以及下载地址(该***的***):
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
转载于:https://www.cnblogs.com/xijianchui/p/5242527.html
一次编译libmono.so的记录相关推荐
- 【Unity】安卓加密编译libmono.so成功失败记录(unity2017已成功编译)
2022年8月14日01:30:44更新 [Unity3D]unity-mono编译libmono.so成功_两水先木示的博客-CSDN博客 2022年8月13日更新(目前看起来好像最接近可行的方案) ...
- Mac 下编译 libmono.so 和 DLL 加密详解
Unity 打出的安卓包为了防止反编译,需要对 Assembly-CSharp.dll 加密处理.Assembly-CSharp.dll 是由 libmono.so 运行时读取然后在 mono 虚拟机 ...
- ROS noetic 安装编译Cartographer踩坑记录
ROS noetic 安装编译Cartographer踩坑记录 安装编译工具 sudo apt-get update sudo apt-get install -y python-wstool pyt ...
- RV1126 SDK编译错误及解决记录
RV1126 SDK编译错误及解决记录 1:错误: you need to install 'unbuffer' (from package expect or expect-dev) log sav ...
- 【Unity3D】unity-mono编译libmono.so成功
目录 文章最终成功编译出libmono.so如下图所示,历时9天 一.下载文件配置环境 二.下载Unity-Mono库 三.正式开始编译libmono.so 1.libmono.so编译文件基础说明 ...
- 记一次编译Cesium踩坑记录
记一次编译Cesium踩坑记录 cd cesium npm install npm install express --save npm install compression --save npm ...
- CEF编译遇到的问题记录
在使用vs2015编译cef官方代码的时候遇到很奇怪的问题, 我用官方的demo cefsimple例子程序编译debug版本 可以正常编译打开网页 正常的打开 我把官方的例子单独创建一个新的项目编译 ...
- 源码编译安装git过程记录
工作上需要使用一台装有银河麒麟的操作系统的计算机.这台计算机cpu是arm架构的并且没有预装git.下面介绍我如何在这样一台预装软件较少的计算机上用源码安装git 目录 1 源码安装autoconf ...
- 【编译原理】活动记录
活动与活动记录 概念: 过程的一次执行称为过程的一次活动 把过程的一个活动所需要的信息组成的一块连续的存储单元 ,称为活动记录 理解: 一个活动所需要的信息的每个数据项有相同的生存周期,因此,将它们组 ...
最新文章
- 解读ASP.NET 5 MVC6系列(10):Controller与Action
- 问题 1462: [蓝桥杯][基础练习VIP]Huffuman树
- PHP iconv 解决utf-8和gb2312编码转换问题
- python爬取某人所有微博_Python爬取博客的所有文章并存为带目录的word文档(实例67)
- 10进制转62进制 java_两种方法实现10进制和62进制互转 | 学步园
- 7-26 单词长度 (15 分) python实现
- php 复制文件夹并压缩到最小_php实现对文件压缩简单的方法
- 在多个线程中使用QNetworkAccessManager
- 【云原生 | Envoy 系列】--Envoy原理
- 小米Recovery线刷精灵 v1.0.0 破解版
- win7 iis php mysql_windows7和iis配置的php phpinfo()中没有mysql组件
- 伯恩光学赴港:背靠苹果、小米,能掀起多大资本浪花?
- 0x7c9300e8 0x7c9300e8错误
- Vue3中setup前写async页面不显示
- SMG、东方明珠新媒体战略推进一周年;百度营销联合多品牌方举办开放麦;驭势科技推出自动驾驶新产品UiBox | 全球TMT...
- composer 指定PHP版本
- 战略制定4大关键要点
- 基于小样本量的水下图像识别
- 一文搞懂——软件模拟SPI
- STM32+收发器实现CAN和485总线
热门文章
- do while循环语句_Python 自学笔记 - while 循环语句
- 谈谈InnoDB下的记录锁,间隙锁,next-key锁
- 嵌入式linux 分区挂载,嵌入式linux系统的开发——文件系统的分区和挂载
- c语言获取时间并存储,如何在C程序中获取日期和时间值?
- 华为与思科网络产品详细比较
- java map套arraylist,在Java中的HashMap和ArrayList的区别?
- 一图看懂云栖大会「云原生」重磅发布
- linux 中断程序设计,Linux中断编程
- NFS服务器主配置文件名,NFS服务器的搭建与配置
- jsp到java xml配置,JSP中web配置:web.xml