WIN11下的Dart SDK源码项目本地部署踩坑记录
不知不觉又过去了一年,因为一些原因,干了五年多前端的我决定从前端转到逆向了,目前先从安卓逆向入手,比较头铁,因为才开始没几天就准备研究flutter的逆向了,现在是跟着这篇博客在搞,跟到本地部署Dart SDK源项目这部分时遇到了一些坑,因为我是WIN11平台(许多大佬都是推荐Ubuntu或者Kali作为逆向环境,据说坑会少一些,但是我比较菜,以前没咋用Linux,暂时也懒得折腾了),所以想记录一下这些坑,基本都是官方文档(github.com/dart-lang/s…) 中没有提到的坑。
安装、使用depot_tools的踩坑记录
-
需要设置下git、cmd以及boto的代理,否则在首次执行
gclient
或gclient sync
命令时会在cipd相关流程时阻塞,因为cipd相关流程没有进度提示,所以在这里卡死时没有提示,也算是个大坑,或者遇到...NOTICE: You have PROXY values set in...
这样的提示。首先是设置git的代理:
## <proxy_url> example: http://127.0.0.1:1080 git config --global proxy.http <proxy_url> git config --global proxy.https <proxy_url>
然后是cmd的代理,可以在用户变量中添加HTTP_PROXY和HTTPS_PROXY,或者设置一次性的环境变量:
set HTTP_PROXY=<proxy_url> set HTTPS_PROXY=<proxy_url>
最后是boto的代理设置,在某个目录下创建一个文本文件,比如 D:\boto.cfg,文件内容示例如下:
[Boto] proxy=http:://127.0.0.1 proxy=1080
然后设置环境变量
NO_AUTH_BOTO_CONFIG
,值就是这个文件的路径。 -
在执行
fetch dart
或在其目录下通过gclient sync
进行同步时,可能会遇到Failed to fetch file gs://chromium-clang-format/c8455d43d052eb79f65d046c6b02c169857b963b ... for xx\xx\xx.ext
之类的错误,可以将gs://
替换为https://storage.googleapis.com/
然后下载到目标目录,并改名为相应的名称(xx.ext),再执行gclient sync
即可。
通过Dart SDK源码项目进行构建的踩坑记录
- 首先执行命令需要通过python启动,但是python版本必须是dpot_tools下的,所以dpot_tools的环境变量(Path环境变量中)的位置必须在你安装的其它Python版本的环境变量之前(如果有安装过其它版本的Python的话)。具体的命令,比如:
./tools/build.py -m product -a simarm gen_snapshot
要改成python ./tools/build.py -m product -a simarm gen_snapshot
或python3 ./tools/build.py -m product -a simarm gen_snapshot
,是用python还是python3可以打开build.py通过第一行确定。 - 关于WIN10 SDK,如果安装WIN10 SDK的目录不确定,可以建一个C++的工程,包含
#include "virtdisk.h"
, 再跳转过去即可确定位置。然后需要新建一个环境变量——WINDOWSSDKDIR, 其值为WIN10 SDK的路径。另外,需要注意的是Dart SDK依赖的WIN10 SDK版本需要包含WinDbg(Debugging Tools for Windows),通过VS installer安装WIN10 SDK可能不包含这个工具,此时需要到官网下载WIN10 SDK然后安装,安装选项中确定有WinDbg选项,安装完后,确认下SDK目录下是否存在Debuggers文件夹。 - 通过build.py执行构建时,如果你不是Chromium的开发者,那么应该没有使用goma服务,那么构建命令要加上
--no-goma
参数,否则会进行goma鉴权,从而构建失败。 - 在使用
python3 ./tools/build.py -m product -a simarm gen_snapshot
构建gen_snapshot工具时,如果你是64位的系统,那么需要将simarm
改为simarm64
否则会构建失败。
后续钻研过程中,有新的进展和心得我可能也会分享一下。现在还是个麻瓜,文中若有不对的地方希望各位给我指出,也希望有志同道合的朋友一起学习、交流。
转载自:https://juejin.cn/post/7259582611181273145