Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
d23cad3
initial commit for serwalker
Apr 3, 2026
f4ebabe
feat(serwalker): scaffold crate
Apr 3, 2026
d2b3726
added a few macro definitions and constant declarations
Apr 4, 2026
f2049a0
feat(serwalker): add macro and constant declarations
Apr 4, 2026
5733517
add common stream methods
Apr 13, 2026
8913583
feat(serwalker): add common stream methods
Apr 13, 2026
dd1ecfd
Implemented a few stream-reading functions, implemented the base stru…
Apr 27, 2026
9d9eaae
feat(serwalker): add stream readers, fixed-alloc base struct, ClassId…
Apr 27, 2026
8de437b
readability change std::string::String -> String
Apr 27, 2026
3991c81
refactor(serwalker): use String instead of std::string::String
Apr 27, 2026
bb1d093
added Default derivation for current classes
Apr 27, 2026
32b99ec
feat(serwalker): derive Default on current classes
Apr 27, 2026
a6381a0
comment
Apr 27, 2026
86bf19a
docs(serwalker): add comment
Apr 27, 2026
ac2a614
format changes using cargo fmt --all
Apr 27, 2026
b36733a
style: cargo fmt --all
Apr 27, 2026
3436a51
fixed read_c_string
Apr 27, 2026
67bb5d8
fixed read_c_string
Apr 27, 2026
d84b948
fixed read_and_decompress_smi
Apr 27, 2026
399e332
feature(serwalker): added implementations to read non null-terminated…
Apr 30, 2026
a762327
refactor(serwalker): ran cargo fmt --all
Apr 30, 2026
e7faa9b
feat(serwalker): implemented tag-decoding macros, declared all fixed-…
May 2, 2026
5db9641
feat(serwalker): added forward declarations for the remaining cluster…
May 4, 2026
ab6e638
feat(serwalker): refactored the raw object representation to resolve …
May 14, 2026
ba5f84c
feat(serwalker): added fill and alloc for the _StringCluster class, i…
May 31, 2026
0bb0974
refactor(selwarker): removed last_ref_id from lambdas in DECLARE_FIXE…
May 31, 2026
e0ecb11
fix(serwalker): made it so fetching the class_id from the tag no long…
May 31, 2026
2a781b2
fix(serwalker): fixed wrong usage of panic! in snapshot.rs where the …
May 31, 2026
ccd55ab
refactor(serwalker): ran cargo fmt --all :DDD
May 31, 2026
15060eb
Update crates/flutterdec-serwalker/src/cluster/mod.rs
kalixtez Jul 25, 2026
0e76e28
serwalker(feat): commiting a few changes (implementation of a few clu…
Jul 26, 2026
bbabb96
Merge branch 'flutterdec-dart-serwalker' of https://github.com/cavera…
Jul 26, 2026
a518dd4
refactor(serwalker): mirror Dart's Read/ReadUnsigned split in Stream
Jul 26, 2026
fc12872
Update crates/flutterdec-serwalker/src/snapshot.rs
kalixtez Jul 26, 2026
4bf529f
fix(serwalker): surface unknown class ids instead of defaulting to Il…
Jul 26, 2026
7ded3ac
fix(serwalker): fields that aren't present in precompiled snapshots w…
Jul 27, 2026
5dbf30c
Merge branch 'flutterdec-dart-serwalker' of https://github.com/cavera…
Jul 27, 2026
d635a40
fix(serwalker): cluster tags now uses the correct reading function, t…
Jul 27, 2026
e83da1e
serwalker(refactor): refactored macro calls after the removal of the …
Jul 27, 2026
f50d581
chore(serwalker): removed trash files and ran cargo fmt --all
Jul 28, 2026
5956cf4
fix(serwalker): first reference id is now num_base_objects + 1
Jul 28, 2026
5ef74e1
fix(serwalker): fixed Read<uint8_t> and Read<int8t> being read as rea…
Jul 28, 2026
b506d49
fix(serwalker): erroneously changed obj.flags for TypeCluster which w…
Jul 28, 2026
5019112
fix(serwalker): Function.kind_tag was being read as an unsigned despi…
Jul 28, 2026
6519b87
Update crates/flutterdec-serwalker/src/snapshot.rs
kalixtez Jul 28, 2026
81a0b14
feat(serwalker): added multiple to-do place holder (function declarat…
Jul 28, 2026
9715ce7
Merge branch 'flutterdec-dart-serwalker' of https://github.com/cavera…
Jul 28, 2026
ebfe471
feat(serwalker): added multiple submodules to the info_producer module
Jul 28, 2026
ab6aef0
chore(serwalker): modified module structure, renamed object_store mod…
Jul 29, 2026
7b652c7
chore(serwalker): made lib.rs adapter interface function public and c…
Jul 29, 2026
c8d2fa2
style(serwalker): ran cargo fmt --all
Jul 29, 2026
027ed79
feat(serwalkre): modified the ObjectStore declaration so it uses a ma…
Jul 30, 2026
e5e142f
feat(serwalker): added instruction table parsing, finished the implem…
Aug 2, 2026
c7c567b
fix(serwalker)!: adapted current code to version 3.11.1, which was th…
Aug 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ members = [
"crates/flutterdec-disasm-arm64",
"crates/flutterdec-ir",
"crates/flutterdec-decompiler",
"crates/flutterdec-serwalker",
]
resolver = "2"

Expand Down
10 changes: 7 additions & 3 deletions crates/flutterdec-adapter/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ use anyhow::{anyhow, bail, Context, Result};
use serde::{Deserialize, Serialize};
use std::fs;
use std::io::Write;
#[cfg(unix)]
use std::os::unix::fs::PermissionsExt;
use std::path::{Path, PathBuf};
use std::process::Command;
Expand Down Expand Up @@ -171,9 +172,12 @@ pub fn install_adapter(repo_root: &Path, dart_hash: &str) -> Result<PathBuf> {
);

fs::write(&out, script).with_context(|| format!("write adapter script: {}", out.display()))?;
let mut perms = fs::metadata(&out)?.permissions();
perms.set_mode(0o755);
fs::set_permissions(&out, perms)?;
#[cfg(unix)]
{
let mut perms = fs::metadata(&out)?.permissions();
perms.set_mode(0o755);
fs::set_permissions(&out, perms)?;
}

Ok(out)
}
Expand Down
10 changes: 10 additions & 0 deletions crates/flutterdec-serwalker/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[package]
name = "flutterdec-serwalker"
version.workspace = true
edition.workspace = true
license.workspace = true

[dependencies]
anyhow.workspace = true
goblin.workspace = true
Comment thread
kalixtez marked this conversation as resolved.
Comment thread
caverav marked this conversation as resolved.
flutterdec-adapter = { path = "../flutterdec-adapter" }
Loading
Loading