首页
社区
课程
招聘
[原创]手把手教大家如何编译flutter的引擎文件libflutter.so(重置版本)
发表于: 2022-5-17 17:11 17271

[原创]手把手教大家如何编译flutter的引擎文件libflutter.so(重置版本)

2022-5-17 17:11
17271

要想完全的了解flutter引擎的内容,需要自行编译做调试跟进。

核心参考 https://github.com/Impact-I/reFlutter/blob/main/.github/workflows/main.yml

这个 github action 配置文件

为了这次编译我完全开了一个新的ubuntu18的虚拟机。下面开干。

depot_tools 谷歌的包管理工具,可以管理多个git项目。重点就是可以断点续传,避免拉一半消失。

配置环境变量使gclient命令生效

底部新增一行

配置生效

这一步我们使用gclient来拉取仓库

新建文件夹

新建配置文件填写gclient配置

写入配置

方便同步 可以fork一份到自己仓库 配置ssh密钥

参考 https://blog.csdn.net/qq_36275734/article/details/78877851

修改前面的git仓库路径为自己的

开始同步

需要等很久 打开网络流量监控看下

同步完成切换分支 先去看本地的flutter版本

你的flutter环境下的 /flutter/bin/internal/engine.version可以找到

比如我的 57d3bac3dd5cb5b0e464ab70e7bc8a0d8cf083ab

https://github.com/flutter/engine/tree/57d3bac3dd5cb5b0e464ab70e7bc8a0d8cf083ab

查看当前commitid

确认开始同步

又是漫长的等待同步完成

编译预配置

只编译安卓

具体的编译参数看官方文档

https://github.com/flutter/flutter/wiki/Compiling-the-engine#compiling-for-android-from-macos-or-linux

开始编译 自行输出目录 是前面创建的输出目录

等待成功即可。

目标引擎版本 857bd6b74c5eb56151bfafe91e7fa6a82b6fee25

fatal: Could not parse object '857bd6b74c5eb56151bfafe91e7fa6a82b6fee25'.

先 进行 git pull 操作 更新git log找到该版本信息

开始同步

gclient sync --with_branch_heads --with_tags --verbose

 
 
 
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
gedit /etc/profile
gedit /etc/profile
export PATH="$PATH:/home/nizz/work_space/flutter/depot_tools"
export PATH="$PATH:/home/nizz/work_space/flutter/depot_tools"
source /etc/profile
source /etc/profile
 
mkdir engine_compile
cd engine_compile
mkdir engine_compile
cd engine_compile
touch .gclient
gedit .gclient
touch .gclient
gedit .gclient
solutions = [
  {
    "managed": False,
    "name": "src/flutter",
    "url": "git@github.com:flutter/engine.git",
    "custom_deps": {},
    "deps_file": "DEPS",
    "safesync_url": "",
  },]
solutions = [
  {
    "managed": False,
    "name": "src/flutter",
    "url": "git@github.com:flutter/engine.git",
    "custom_deps": {},
    "deps_file": "DEPS",
    "safesync_url": "",
  },]
 
 
 
gclient sync
gclient sync
 

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2022-11-24 11:12 被小黄鸭爱学习编辑 ,原因:
收藏
免费 3
支持
分享
最新回复 (15)
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
十天了大哥 催更
2022-5-25 14:57
0
雪    币: 2179
活跃值: (4547)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
wx_莫相惜 十天了大哥 催更[em_88]
我马上更新
2022-5-31 11:12
0
雪    币: 2179
活跃值: (4547)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不知道论坛什么帖子可以加精啊
2022-5-31 11:50
0
雪    币: 226
活跃值: (1419)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
催更
2022-6-1 21:57
0
雪    币: 15
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
大佬丢了
2022-7-3 04:44
0
雪    币: 1446
活跃值: (1783)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
敢问大佬,有些app用reflutter 重新打包之后闪退怎么解决?
2022-7-11 09:19
0
雪    币: 2179
活跃值: (4547)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
dreamhake 敢问大佬,有些app用reflutter 重新打包之后闪退怎么解决?
有签名校验 这很正常,所以我也不太推荐使用重打包方式进行逆向flutter
2022-7-11 14:49
0
雪    币: 1446
活跃值: (1783)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
小黄鸭爱学习 有签名校验 这很正常,所以我也不太推荐使用重打包方式进行逆向flutter
还有其他方式吗?我用 mt 直接去签名校验,貌似没有效果
2022-7-11 17:41
0
雪    币: 2179
活跃值: (4547)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
dreamhake 还有其他方式吗?我用 mt 直接去签名校验,貌似没有效果
mt是什么
2022-7-11 17:58
0
雪    币: 310
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
小黄鸭大佬,reflutter 打包闪退有没有啥解决方案,能不能留个联系方式
2022-7-15 14:49
0
雪    币: 2179
活跃值: (4547)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
一面 小黄鸭大佬,reflutter 打包闪退有没有啥解决方案,能不能留个联系方式
1.检测签名校验
2.是否魔改过引擎源码
2022-7-18 15:25
0
雪    币: 1
活跃值: (1107)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
小黄鸭爱学习 有签名校验 这很正常,所以我也不太推荐使用重打包方式进行逆向flutter
请教下大佬,reflutter重打包apk,运行重打包的apk得到dump文件后,在dump文件中找到函数偏移地址,使用frida去hook时,直接使用原始的apk可以吗?一定要reflutter重打包的apk吗。因为我碰到一个问题,重打包的apk可以运行,但是网络不正常(感觉像是断网了,可能是有检测重打包,主动断网的)
2022-8-10 18:33
0
雪    币: 1
活跃值: (1107)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
小黄鸭爱学习 有签名校验 这很正常,所以我也不太推荐使用重打包方式进行逆向flutter
dump文件,看起来是去获取函数针对_kDartIsolateSnapshotInstructions的偏移值。我拿到这个偏移值,直接运行原始apk,hook它,获取到_kDartIsolateSnapshotInstructions的地址,加上dump文件中的偏移值,应该就是目标函数的地址了吧
2022-8-10 18:35
0
雪    币: 181
活跃值: (62)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
dreamhake 敢问大佬,有些app用reflutter 重新打包之后闪退怎么解决?
我也是签名校验闪退  改了检测点 还是闪退  写的就很离谱  和以前见过的不太一样
2022-11-2 17:50
0
雪    币: 237
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
wx_莫相惜 十天了大哥 催更[em_88]
阿萨
2023-6-17 14:07
0
游客
登录 | 注册 方可回帖
返回
//