Upgrade Frida to 17.15.1 and migrate workspace to Rust edition 2024#244
Conversation
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.
|
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
Fixed. Also bumped to 17.14.1. |
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').
|
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.
|
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. |
| data.result = Err(Error::FailedToCreateScript); | ||
| return; | ||
| } | ||
| data.script = gum_script_backend_create_finish(data.backend, result, &mut error); |
There was a problem hiding this comment.
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.
| } | ||
| } | ||
| } | ||
| } // end unsafe |
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_fnnow deny-by-default requiring explicitunsafe {}blocks inside unsafe fns;refin let-else patterns removed. Applied viacargo fix --editionwhere possible, remaining blockers fixed manually first.API changes for 17.13.0/17.14.0:
Cross-platform (Linux/iOS devkits prefix GLib symbols with frida):
refpatterns updated for edition 2024 match ergonomics.