Skip to content

Upgrade Frida to 17.15.1 and migrate workspace to Rust edition 2024#244

Merged
s1341 merged 10 commits into
frida:mainfrom
kkuehl:kkuehl/frida-17.13-edition-2024
Jun 29, 2026
Merged

Upgrade Frida to 17.15.1 and migrate workspace to Rust edition 2024#244
s1341 merged 10 commits into
frida:mainfrom
kkuehl:kkuehl/frida-17.13-edition-2024

Conversation

@kkuehl

@kkuehl kkuehl commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

This is a smaller, minimal PR. The missing features will come after this is merged.

FRIDA_VERSION: bump 17.9.5 -> 17.14.0 across all FRIDA_VERSION files.

Edition 2024 (workspace Cargo.toml): unsafe extern "C" required for all extern blocks; unsafe_op_in_unsafe_fn now deny-by-default requiring explicit unsafe {} blocks inside unsafe fns; ref in let-else patterns removed. Applied via cargo fix --edition where possible, remaining blockers fixed manually first.

API changes for 17.13.0/17.14.0:

  • gum_interceptor_replace/replace_fast: new options param added; pass null.
  • gum_interceptor_attach: options param replaces separate listener_data arg.
  • gum_stalker_activate_experimental_unwind_support: removed; drop wrapper.
  • frida-build: fix redundant-reference lints in format!/println! macros.
  • backtracer: fix double-reference in fuzzy_with_context.

Cross-platform (Linux/iOS devkits prefix GLib symbols with frida):

  • variant.rs ref patterns updated for edition 2024 match ergonomics.
  • process.rs Linux/FreeBSD extern block marked unsafe extern.
  • aarch64/relocator.rs + x86_64/relocator.rs extern blocks marked unsafe.

FRIDA_VERSION: bump 17.9.5 -> 17.14.0 across all FRIDA_VERSION files.

Edition 2024 (workspace Cargo.toml): `unsafe extern "C"` required for all
extern blocks; `unsafe_op_in_unsafe_fn` now deny-by-default requiring explicit
`unsafe {}` blocks inside unsafe fns; `ref` in let-else patterns removed.
Applied via `cargo fix --edition` where possible, remaining blockers fixed
manually first.

API changes for 17.13.0/17.14.0:
- gum_interceptor_replace/replace_fast: new options param added; pass null.
- gum_interceptor_attach: options param replaces separate listener_data arg.
- gum_stalker_activate_experimental_unwind_support: removed; drop wrapper.
- frida-build: fix redundant-reference lints in format!/println! macros.
- backtracer: fix double-reference in fuzzy_with_context.

Cross-platform (Linux/iOS devkits prefix GLib symbols with _frida_):
- variant.rs `ref` patterns updated for edition 2024 match ergonomics.
- process.rs Linux/FreeBSD extern block marked unsafe extern.
- aarch64/relocator.rs + x86_64/relocator.rs extern blocks marked unsafe.
@s1341

s1341 commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Thanks. Please address CI issues.

- Add unsafe keyword to all extern "C" blocks in aarch64 relocator
- Update FRIDA_VERSION from 17.14.0 to 17.14.1 in both frida-sys and frida-gum-sys
- Fixes compilation errors with Rust edition 2024 requirement for unsafe extern blocks
@kkuehl kkuehl changed the title Upgrade Frida to 17.14.0 and migrate workspace to Rust edition 2024 Upgrade Frida to 17.14.1 and migrate workspace to Rust edition 2024 Jun 18, 2026
@kkuehl

kkuehl commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

Thanks. Please address CI issues.

Fixed. Also bumped to 17.14.1.
Just to provide some additional context, I am using this branch successfully on Windows, and I am not able to run the CI on my fork, so I have to wait for errors to surface here. Thanks for your help!

Only uses reqwest::blocking::get with blocking + rustls-tls features,
all unchanged in 0.13. Lets downstream workspaces unify on reqwest 0.13
instead of compiling both 0.12 and 0.13.
…tls')

reqwest 0.13 renamed the rustls-tls feature to rustls; the old name no
longer resolves. Plain 'rustls' bundles a crypto provider (unlike
'rustls-no-provider').
@s1341

s1341 commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

More CI stuff. No worries about surfacing things here. That's what CI is for.

Rust 2024 edition requires unsafe operations inside `unsafe fn` bodies
to be wrapped in explicit `unsafe {}` blocks. Add inner unsafe blocks to
create_cb, js_msg, and load_cb to satisfy unsafe_op_in_unsafe_fn lint.
@kkuehl kkuehl changed the title Upgrade Frida to 17.14.1 and migrate workspace to Rust edition 2024 Upgrade Frida to 17.15.0 and migrate workspace to Rust edition 2024 Jun 19, 2026
@kkuehl kkuehl changed the title Upgrade Frida to 17.15.0 and migrate workspace to Rust edition 2024 Upgrade Frida to 17.15.1 and migrate workspace to Rust edition 2024 Jun 21, 2026
@s1341

s1341 commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

is this ready to merge?

@kkuehl

kkuehl commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

is this ready to merge?

Yes. Once this merges, I will rebase my other much larger pull request on top of this. I have been using many of the additional features available in the other draft PR for several weeks successfully on Windows. Thanks for your review and patience with CI issues.

@s1341 s1341 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a couple of nits.

data.result = Err(Error::FailedToCreateScript);
return;
}
data.script = gum_script_backend_create_finish(data.backend, result, &mut error);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tabs?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see it here, but not when I cargo fmt. Very strange indeed. if you check out this branch you won't see it, or at least I do not.

Comment thread frida/src/script.rs Outdated
}
}
}
} // end unsafe

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe remove comment?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed.

@s1341 s1341 merged commit 415db91 into frida:main Jun 29, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants