unity运行环境_重新编译mono——环境搭建,编译mono

环境:

操作系统:Mac OSX10.12.6

mono版本:unity4.6

NDK版本:android-ndk-r10e

1.下载unity-mono分支版本:4x-5.x-2019。https://github.com/Unity-Technologies/mono/tree/unity-4.6

2.下载AndroidNDK。https://developer.android.google.cn/ndk/downloads/older_releases.html?#ndk-16b-downloads。下载对应的版本,不然会有各种坑,版本在mono目录按下的external/buildscripts/build_runtime_android.sh中可以看到

3.在下载的mono路径下运行:./external/buildscripts/build_runtime_android.sh

773342f6af909573e1ac0669ea8045ed.png

3.1运行过程中会自动git android_krait_signal_handler项目,项目中默认会使用最新的ndk版本,在build.pl中将版本号修改为自己的ndk版本。

268895d46e4b1893700bbe640192faf9.png

4.运行过程中缺少各种插件,安装其他插件: brew install automake;brew install libtool 。

175b2f03aedc583eef7057fafcc67405.png

5.运行过程中perl路径缺少,配置perl路径:whereis perl查看路径地址,替换build.pl第一行。

ba29107abbc9cb34dff01a1b01a5b84d.png

6.builds/embedruntimes/android,目录下会生成相关so文件。

d40b0784abb2233f50ec371acdbfe34b.png

---------------------------------------------华丽的分割线---------------------------------------

下面是重新编写mono的加载以及dll的加密解密过程。

1.在目录 mono/metadata/image.c中找到函数接口“mono_image_open_from_data_with_name”(不同版本接口可以能不一样)。添加解密代码:

30f1d738c78551d26ff633d160946ec1.png

1.1重新运行build_runtime_android.sh,生成新的libmono.so。

2.写一段简单dll加密的代码,编译运行即可。

gcc -c main.c

gcc main.o -o main

./main

fadac691988ba8f860d589d166273348.png

9.最后生成加密后的dll

21c4ce7b89053747c78c991758f272c0.png

10.将新生成的libmono和加密后的dll替换到原来Android工程里面的文件即可。

PS:Windows系统交叉编译听说有很多坑。

参考:http://macgou.com/archives/4854

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值