【Unity】安卓加密编译libmono.so成功失败记录(unity2017已成功编译)
2022年8月14日01:30:44更新
【Unity3D】unity-mono编译libmono.so成功_两水先木示的博客-CSDN博客
2022年8月13日更新(目前看起来好像最接近可行的方案)
https://www.jianshu.com/p/b801a9b7cff8
博主使用的是编译环境 centos7.2_CHS_64
我使用uBuntu64位,进行
/root/tmp/mono-android/android_ndk/android-ndk-r13b/ndk-build clean
/root/tmp/mono-android/android_ndk/android-ndk-r13b/ndk-build
这2行结果显示都还可以,直到进行
perl build.pl
发生报错,ndk问题?目前尚不清楚是否是64位系统执行32位的linux ndk问题,可以尝试换32位ubuntu系统测试。(记录与2022年8月13日)
测试环境uBuntu64、mono 2017.4、ndk-r13b_x86_64编译mono库、ndk-r10e_x86单独编译android_krait_signal_handler库
最终卡死(看起来像是执行到一半就终止了,原因未知)
失败总结:
失败原因基本是我不会git的克隆,仅仅因为这个unity-mono库存在submodule(子库)导致卡进度,如果能成功完整克隆unity-mono库,按道理是挺简单就能完成编译libmono.so文件了。(谁能的话可以告诉我,这git它一个个去克隆子库可以,执行了autogen.sh时它又会去克隆一遍全部,这时候就会出现无法正常克隆情况,和我使用git submodule update的效果基本一致,卡死在cloning into xxx 或 fail connect github.com 或各种奇怪的bug 均是克隆submodule问题,可能有人说你手动自己一个个克隆完整不就行了吗?我试了但它这autogen.sh就是会有代码可能是内部的主动去调起了重新克隆子库的代码(目前不想找了 要改起来头皮发麻)。
观察发现,仅有后来出现的Unity版本是存在子库的,Unity4.x或5.x 甚至Unity2017好像都没有submodule(子库)所以试手推荐选用没有submodule库的,网上基本上都是4.x或5.x都有成果,后面再试试4.x或5.x,测试下编译出来的libmono.so能不能给高版本的unity使用。总之,真的是绝了~
目前还剩下一种方案就是直接使用镜像路径替换github.com(改gitconfig可以做到),就是不知道能不能克隆子库的时候也会生效了,目前进展是能够正常克隆子库了,但是速度是2KB/s龟速,而且我没有那种加速的小东西,等后续有条件可以尝试弄下。
本人环境介绍:
unity-mono分支:2019.4-branch-updates
ubuntu64位:ubuntu-18.04.1-desktop-amd64.iso
vmware:VMware® Workstation 15 Pro (15.5.0 build-14665864)
ndk: android-ndk-r16b (下载)git clone --recursive -b 2019.4-branch-updates https://github.com/Unity-Technologies/mono.git
unity mono编译_hongjie98的博客-CSDN博客_使用unity 的mono编译器
window虚拟机:VMware Workstation (下载)
linux环境:Ubuntu 18.04.4 LTS (网易镜像下载)
Mono版本:mono-unity-2019.4-mbe(下载)
ndk版本:android-ndk-r16b-linux-x86_64(下载)
编译:
1、卸载旧版本mono编译环境
sudo apt-get --purge remove mono-runtime
sudo apt-get autoremove
2、安装新版本mono编译环境 (国内镜像安装)
sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.listsudo apt update
sudo apt install mono-devel -y
这里我卡了很久,原因是镜像没有使用。镜像文章:https://blog.csdn.net/Piconjo/article/details/104660915
用root权限打开这个sources.list文件添加如下镜像(网易)之后执行【如果这些镜像不行了你得找到一个可以加速的,注意不能全部都放进去,只能选一个】
sudo apt clean
sudo apt updatedeb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
完成后再去执行上方的代码,基本就是sudo apt install mono-devel -y 这行命令下载的东西比较多(我发现还是慢,但不至于完全卡死,也有个100~300KB左右的速度,总之慢慢等吧 几个小时?)
3、安装必要的工具
sudo apt-get install autoconf automake libtool libtool-bin git cmake python
4、cd到mono根目录(mono-unity-2019.4-mbe解压出来的所在目录)
sudo ./autogen.sh
sudo ./make
可能会遇到报错信息:
configure.ac:434: error: installing './compile'; error while making link: Operation not supported
configure.ac:16: error: installing './missing'; error while making link: Operation not supported
ikvm-native/Makefile.am: error: installing './depcomp'; error while making link: Operation not supported
**Error**: automake failed.
需要将mono工程移出共享文件夹,比如放到根目录/lib下,Move To完成后再执行上方命令。
失败!失败!又TM的失败了!
无论是windows还是ubuntu系统,执行到关键的./autogen.sh代码时,均会进行一次git克隆子库,也就是.gitmodules文件的内容,大概有十几个子库,而且子库内部也有子库,这些克隆子库的地方在windows系统是fail connect github.com(改镜像路径好像也是一样的),ubuntu系统就是另一个报错(但不是所有都无法clone只有部分会)就是fatal: The remote end hung up unexpectedly我从网上了解到的方法统统都不行,后面搞了那些后还报错了一个新的libtoolize: error: copying '/usr/share/libtool/build-aux/ltmain.sh' to './' failed
总之基本上可以告别安卓加密了,网上的所有安卓加密目前均已尝试,后面有心情再玩玩了,感觉用途不大li2cpp打包就是一层加密了。
如果上面的你都成功了,没有任何报错,那恭喜继续下面的步骤 这些都是网上的 按道理是目前我能搜到比较高级版本的,很多编译libmono.so都是unity5.x版本的东西,太老了。
5、到mono/external/buildscripts目录下
1)修改build.pl 中 my $existingMonoRootPath='/usr/lib/mono'
2)将ndk解压到下面的路径:artifacts/Stevedore/android-ndk-linux-x86_64/android-ndk-r16b
3)检查extrnal目录下的bgwgc、boringssl、roslyn-binaries是否是空的,如果是就到主干上单独下载,然后放到对应的目录内
4)./build_runtime_android.sh
6、编译出来的 libmonobdwgc-2.0.so 是debug版本 (PS:我是把编译处理的android文件夹拷贝到桌面 /home/admin/Desktop )
1) 处理armv7 release版 cd 到ndk目录
artifacts/Stevedore/android-ndk-linux-x86_64/android-ndk-r16b/arm-linux-androideabi-clang/bin
./arm-linux-androideabi-strip /home/admin/Desktop/android/armv7a/libmonobdwgc-2.0.so
2) 1) 处理x86 release版 cd 到ndk目录
artifacts/Stevedore/android-ndk-linux-x86_64/android-ndk-r16b/i686-linux-androideabi-clang/bin
./i686-linux-androideabi-strip /home/admin/Desktop/android/x86/libmonobdwgc-2.0.so
【Unity】安卓加密编译libmono.so成功失败记录(unity2017已成功编译)相关推荐
- Android + Eclipse + PhoneGap 2.9.0 安卓最新环境配置,部分资料整合网上资料,已成功安装....
前言:最近心血来潮做了一个以品牌为中心的网站,打算推出本地服务o2o应用.快速开发手机应用,最后选择了phonegap,这里我只是讲述我安装的过程,仅供大家参考. 我开发的一个模型http://www ...
- win10+vs2017配置mpi环境的记录(已成功)
并行计算的课程需要动手实验,需要在电脑上使用mpi 使用mpi有两种选择:虚拟机搭建集群,vs多线程模拟多机. 搭建集群太麻烦,果断放弃.决定使用vs2017多线程环境,通过mpi进行并行计算实验. ...
- 错误代码大全【100(临时响应)】【200(成功)】【300(已重定向)】【400(请求错误)】【500(服务器错误)】(HTTP协议版本)
最常出现的错误代码: 200(成功) 服务器已成功处理了请求.通常,这表示服务器提供了请求的网页. 400(错误请求) 服务器不理解请求的语法. 404(未找到) 服务器找不到请求的网页.例如,如果请 ...
- Mac 下编译 libmono.so 和 DLL 加密详解
Unity 打出的安卓包为了防止反编译,需要对 Assembly-CSharp.dll 加密处理.Assembly-CSharp.dll 是由 libmono.so 运行时读取然后在 mono 虚拟机 ...
- 【Unity3D】unity-mono编译libmono.so成功
目录 文章最终成功编译出libmono.so如下图所示,历时9天 一.下载文件配置环境 二.下载Unity-Mono库 三.正式开始编译libmono.so 1.libmono.so编译文件基础说明 ...
- unity app加密
Unity3D现在很火.应用得场景很多.那么针对unity发布的程序如何加密呢? Unity3D程序的安全问题 代码安全问题 Unity3D 程序的核心程序集文件 Assembly-CSharp.dl ...
- 一次编译libmono.so的记录
首先这篇文章参考的是: Unity3D-重新编译Mono加密DLL Unity3D研究院之Android加密DLL与破解DLL .SO(八十一) 接着说一下我自己编译的过程步骤 编译平台:虚拟机OS ...
- Unity - 游戏加密方案-DLL加密方法记录
Unity - 游戏加密方案-DLL加密方法记录 DLL加密 Unity中的自定义脚本都会打包到Assembly-CSharp.dll这个DLL中,所以目前常见的游戏加密方案就是,用对称加密算法加密A ...
- Unity/VS/C#Unity工程加密授权开发---LicenseProj
最近在发布Unity工程时要考虑给Unity加密的问题,但有关此类的文章很少,多数人推荐使用C#中的System.Management类实现,虽然Unity3d支持.net3.5架构,但是并不是所有功 ...
最新文章
- 作为导师,我希望学生在毕业后主动拉黑我
- oracle 数据 时间间隔,如何掌握 Oracle 中的时间间隔型数据
- 【H264码流分析】 SPS/PPS/Slice Header
- 11. 旋转数组的最小数字
- POJ 1191 棋盘分割(区间DP)题解
- 程序员生存指南:如何在技术浪潮中屹立不倒?
- php 中echo命令详解,DOS中的ECHO命令详解
- ASP.NET MVC 4 tutorial
- How to make an app
- VB2010(29)Web部署应用程序
- Word也能制作座位表?掌握这个技巧安排座位不慌乱
- MAML代码及理论的深度学习 PyTorch二阶导数计算
- 再谈OT算法的协同文档制作的底层基础架构记录
- oracle 11g dul,【学习笔记】Oracle DUL 11 兼容Oracle 12C数据库的DUL工具最新版本
- 小程序-demo:知乎日报
- ICANN近日将更改DNS信任密钥中的密钥对
- webservice wsdl2java_WebService学习笔记(三)wsdl2java代码生成
- WEB攻防-通用漏洞水平垂直越权购买逻辑漏洞
- android 兼容模式设置,天天安卓模拟器切换极速模式与兼容模式的方法
- C/C++ 全排列问题