#android #r8 #retrace

proguard

Rust Proguard 映射文件基本处理

17 个稳定版本 (5 个主要版本)

5.5.0 2024年7月3日
5.4.0 2023年11月30日
5.0.2 2023年6月23日
5.0.1 2023年3月23日
0.3.0 2017年6月13日

开发工具 中排名 143

Download history 150/week @ 2024-04-25 191/week @ 2024-05-02 96/week @ 2024-05-09 237/week @ 2024-05-16 243/week @ 2024-05-23 226/week @ 2024-05-30 139/week @ 2024-06-06 130/week @ 2024-06-13 86/week @ 2024-06-20 135/week @ 2024-06-27 124/week @ 2024-07-04 173/week @ 2024-07-11 170/week @ 2024-07-18 448/week @ 2024-07-25 121/week @ 2024-08-01 45/week @ 2024-08-08

每月下载量 814
symbolic-proguard 中使用

BSD-3-Clause

490KB
2.5K SLoC

Rust Proguard 解析器

一个简单的Rust库,实现了基本的Proguard处理。

文档

版本管理

我们使用 craft 发布新版本。


lib.rs:

这个crate实现了Proguard映射文件的处理。

主要用例是重新映射类或完整的堆栈帧,但它也可以逐行解析Proguard映射文件。

uuid功能还允许获取Proguard文件的UUID。

示例

let mapping = r#"
android.arch.core.internal.SafeIterableMap -> a.a.a.b.c:
    13:13:java.util.Map$Entry eldest():168:168 -> a
"#;
let mapper = proguard::ProguardMapper::from(mapping);

// re-mapping a classname
assert_eq!(
    mapper.remap_class("a.a.a.b.c"),
    Some("android.arch.core.internal.SafeIterableMap"),
);

// re-map a stack frame
assert_eq!(
    mapper
        .remap_frame(&proguard::StackFrame::new("a.a.a.b.c", "a", 13))
        .collect::<Vec<_>>(),
    vec![proguard::StackFrame::new(
        "android.arch.core.internal.SafeIterableMap",
        "eldest",
        168
    )],
);

依赖项