worawit / blutter

Flutter Mobile Application Reverse Engineering Tool
MIT License
752 stars 128 forks source link

error: "double-conversion.h" not found #39

Open pchpub opened 5 months ago

pchpub commented 5 months ago
root@debian:~/blutter# python3 blutter.py /home/pch/demo-apk/lib/arm64-v8a /home/pch/demo-re
Dart version: 3.3.0-174.3.beta, Snapshot: 8b43434a6666a4f8eb2de8ecf8be4f82, Target: android arm64
flags: product no-code_comments no-dwarf_stack_traces_mode no-lazy_dispatchers dedup_instructions no-tsan no-asserts arm64 android compressed-pointers null-safety
Cloning into '/root/blutter/dartsdk/v3.3.0-174.3.beta'...
remote: Enumerating objects: 2362, done.
remote: Counting objects: 100% (2362/2362), done.
remote: Compressing objects: 100% (1908/1908), done.
remote: Total 2362 (delta 52), reused 1334 (delta 46), pack-reused 0
Receiving objects: 100% (2362/2362), 1.33 MiB | 9.29 MiB/s, done.
Resolving deltas: 100% (52/52), done.
remote: Enumerating objects: 24, done.
remote: Counting objects: 100% (24/24), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 24 (delta 0), reused 6 (delta 0), pack-reused 0
Receiving objects: 100% (24/24), 135.43 KiB | 741.00 KiB/s, done.
Updating files: 100% (24/24), done.
remote: Enumerating objects: 2835, done.
remote: Counting objects: 100% (2835/2835), done.
remote: Compressing objects: 100% (2368/2368), done.
remote: Total 2835 (delta 545), reused 1174 (delta 427), pack-reused 0
Receiving objects: 100% (2835/2835), 8.40 MiB | 7.68 MiB/s, done.
Resolving deltas: 100% (545/545), done.
Updating files: 100% (3199/3199), done.
-- Configuring done (0.5s)
-- Generating done (0.0s)
-- Build files have been written to: /root/blutter/build/dartvm3.3.0-174.3.beta_android_arm64
[36/255] Building CXX object CMakeFiles/dartvm3.3.0-174.3.beta_android_arm64.dir/runtime/vm/double_conversion.cc.o
FAILED: CMakeFiles/dartvm3.3.0-174.3.beta_android_arm64.dir/runtime/vm/double_conversion.cc.o
/usr/bin/c++ -DDART_COMPRESSED_POINTERS -DDART_PRECOMPILED_RUNTIME -DDART_TARGET_OS_ANDROID -DDART_TARGET_OS_WINDOWS_UWP -DEXCLUDE_CFE_AND_KERNEL_PLATFORM -DNDEBUG -DPRODUCT -DTARGET_ARCH_ARM64 -DU_USING_ICU_NAMESPACE=0 -D_HAS_EXCEPTIONS=0 -I/root/blutter/dartsdk/v3.3.0-174.3.beta/runtime -O3 -DNDEBUG -std=gnu++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -O3 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -fno-rtti -fno-exceptions -MD -MT CMakeFiles/dartvm3.3.0-174.3.beta_android_arm64.dir/runtime/vm/double_conversion.cc.o -MF CMakeFiles/dartvm3.3.0-174.3.beta_android_arm64.dir/runtime/vm/double_conversion.cc.o.d -o CMakeFiles/dartvm3.3.0-174.3.beta_android_arm64.dir/runtime/vm/double_conversion.cc.o -c /root/blutter/dartsdk/v3.3.0-174.3.beta/runtime/vm/double_conversion.cc
/root/blutter/dartsdk/v3.3.0-174.3.beta/runtime/vm/double_conversion.cc:7:10: fatal error: ../../third_party/double-conversion/src/double-conversion.h: No such file or directory
    7 | #include "../../third_party/double-conversion/src/double-conversion.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[53/255] Building CXX object CMakeFiles/dartvm3.3.0-174.3.beta_android_arm64.dir/runtime/vm/app_snapshot.cc.o
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "/root/blutter/blutter.py", line 168, in <module>
    main(args.indir, args.outdir, args.rebuild, args.vs_sln, args.no_analysis)
  File "/root/blutter/blutter.py", line 130, in main
    fetch_and_build(dart_version, arch, os_name, has_compressed_ptrs, snapshot_hash)
  File "/root/blutter/dartvm_fetch_build.py", line 119, in fetch_and_build
    cmake_dart(ver, arch, os_name, has_compressed_ptrs, outdir)
  File "/root/blutter/dartvm_fetch_build.py", line 114, in cmake_dart
    subprocess.run([NINJA_CMD], cwd=builddir, check=True)
  File "/usr/lib/python3.11/subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ninja']' returned non-zero exit status 1.

On Debian Linux debian 6.5.0-5-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.5.13-1 (2023-11-29) x86_64 GNU/Linux gcc version 13.2.0 (Debian 13.2.0-10)

yzctzl commented 5 months ago

the runtime/third_party/ moved to third_party/ in this commit: https://github.com/dart-lang/sdk/commit/4d308f39115a2969fb9908055b37a93969d4fc8d

try add third_party to the sparse-checkout dir list and try again, I haven't tried, hope it helps. https://github.com/worawit/blutter/blob/c59753cc314a2e4a97980856f2e792e8f03fbe48/dartvm_fetch_build.py#L51

worawit commented 5 months ago

Try latest commit. Building Dart VM v3.3 should work now.