Android Deobfuscation

11/11/2019

本文内容

ProGuard、DexGuard 和 R8 是用于对 Android 应用程序的代码进行优化和模糊处理的工具。 它会删除未使用的代码、重命名具有语义模糊名称的类、字段和方法,使基本代码更小,更难反向工程。 若要在 Android 应用中使用 ProGuard 或 R8 启用混淆,请遵循 官方 Android 开发人员文档。

如果在 Android 应用中启用了 ProGuard、DexGuard 或 R8,则堆栈跟踪必须 deobfuscated。 当你上传 mapping.txt 每个生成上创建的文件时,App Center 会自动为 Java、Kotlin 和响应本机 Android 应用 deobfuscates 堆栈跟踪。 此文件将原始类、方法和字段名称映射到可读取堆栈跟踪的经过模糊处理的名称。

App Center 生成和分发服务可以自动生成映射文件并将其上载到诊断服务。 如果使用 App Center 生成应用并将其自动分发给最终用户,则无需手动获取和上传映射文件,如以下步骤中所述。

正在上载 mapping.txt 文件

App Center 门户

mapping.txt从应用模块的生成目录下载文件

登录到 App Center 并选择你的应用

在左侧菜单中,导航到 " 诊断 " 部分

选择 映射

单击右上角的 " 上传映射 " 按钮

填写版本名称和版本代码 (它们必须匹配该生成的 Gradle 配置,才能使映射适用于特定生成)

从 mapping.txt 应用模块的生成目录上传文件。

单击“保存”按钮。

App Center API

通过 API 上传映射文件的过程涉及一系列三个 API 调用:一次用于分配后端空间,一次用于上传文件,另一次用于更新上传状态。 第一个 API 调用的正文应分别设置为 、、分别对应于版本代码和版本名称的属性 symbol_type AndroidProguard 以及 build version file_name 。

触发 POST 对 symbol_uploads API的请求。

此调用在文件后端为文件分配空间,并返回 symbol_upload_id 和 upload_url 属性。

curl -X POST 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads' \

-H 'accept: application/json' \

-H 'X-API-Token: {API TOKEN}' \

-H 'Content-Type: application/json' \

-d '{JSON BODY}'

使用 upload_url 第一步中返回的属性,发出 PUT 带有标头的请求: "x-ms-blob-type: BlockBlob" 并提供文件在磁盘上的位置。 此调用会将文件上传到后端存储帐户。 了解有关 放置 Blob 请求标头的详细信息。

curl -X PUT '{upload_url}' \

-H 'x-ms-blob-type: BlockBlob' \

--upload-file '{path to file}'

PATCH使用第一步中返回的属性向symbol_uploads API发出请求 symbol_upload_id 。 在请求正文中,指定是要将上传的状态设置 (为 "已 committed 成功完成") 上载过程,还是 ("未 aborted 成功完成) "。

curl -X PATCH 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}' \

-H 'accept: application/json' \

-H 'X-API-Token: {API TOKEN}' \

-H 'Content-Type: application/json' \

-d '{ "status": "committed" }'

备注

符号上载 API 不适用于大小超过256MB 的文件。 使用 App Center CLI 上传这些文件。 可以按照我们的 APP CENTER cli存储库中的说明安装 App Center CLI。

App Center CLI

还可使用 CLI 上传映射文件:

appcenter crashes upload-mappings --mapping {mapping file} --version-name {version name} --version-code {version code}

备注

App Center无法检查是否上传了正确的 mapping.txt 文件。 建议在创建 .apk 文件后直接上传文件,或将其推送到代码存储库(如果要稍后上传)。

从生成中转发映射App Center

如果将生成 配置为生成文件 mapping.txt ,App Center生成文件作为可用下载。 自动分发生成或稍后手动分发它将文件转发到诊断,以对传入的崩溃 mapping.txt 报告进行模糊处理。 分发生成后,不需要手动 mapping.txt 上传文件。

删除映射文件

向 GET 应用程序 API symbols_list请求。 这会检索上传的映射文件的 ID。

使用 DELETE 映射文件 ID 向 symbols_upload API 进行请求。 这会删除指定的映射文件。

app android de,Android Deobfuscation相关推荐

  1. Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException

    异常Log: Error:Execution failed for task ':app:dexDebug'.  > com.android.ide.common.process.Process ...

  2. 【Android】Android开发初学者实现拨打电话的功能,拨打电话app小demo实现

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先先给大家看一下最终实现的效果: ...

  3. 快给你的app上锁吧(android图案解锁)

    序言:前两天因为项目的原因,去做了一下仿ios的数字解锁功能,然后写了那篇快给你的app上锁吧(android数字解锁),后来想到应用中常见的还有另外一种解锁就是绘制图案解锁,这两种解锁的布局看起来是 ...

  4. android调用另一app的xml,Android 7.0+调用其他App打开文件

    ​ 近期需要用到读取Android设备外存中的JSON和Word,在前期开发时用于调试的是Android 6.0的米4,当拿到实际应用环境(Android 7.0)时,Android 6.0之后的版本 ...

  5. 公司app 从兼容Android 8.0 升级兼容9.0

    遇到的问题 1.All com.android.support libraries must use the exact same version specification (mixing vers ...

  6. android app 主界面,android ViewPager实现App主界面Tab菜单页面切换和点击事件

    Tabhost实现页面滑动切换比较麻烦,这里介绍一下viewPage 控件. 实现了三屏滑动带标题点击和tab页面内按钮的的点击事件实现: viewPage  的优点是可以滑动切换缺点是MainAct ...

  7. android app的签名,Android APP的签名

    Android APP的签名 Android项目以它的包名作为唯一的标识,如果在同一部手机上安装两个包名相同的APP,后者就会覆盖前面安装的应用.为了避免Android APP被随意覆盖,Androi ...

  8. 【Android】Android开发启动app弹出一张广告图片,Dialog可以查看大图,查看某个图片功能...

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...

  9. Error:The module 'app' is an Android project without build variants, and cannot be built.

    导入 项目 Error:The module 'app' is an Android project without build variants, and cannot be built. Plea ...

最新文章

  1. SCCM 2016 配置管理系列(Part5)
  2. php 分页类使用,php 分页 分页类 简单实用
  3. ios中关于delegate(委托)的使用心得
  4. junit5和junit4_JUnit 5 –架构
  5. 数据管理,数据治理,数据中心,数据中台,数据湖这下就分清楚了!
  6. 《红楼梦》告诉你,什么才是真正的教养
  7. Backbone.js入门学习资源
  8. 云计算实战系列六(Linux进程管理)
  9. Java开发工具插件配置记录
  10. Java 提示“找不到或无法加载主类” 解决方法
  11. win32 sdk绘制ListBox控件
  12. 217.存在重复元素 (力扣leetcode) 博主可答疑该问题
  13. High-Quality Genome-Scale Models From Error-Prone, Long-Read Assemblies高质量的基因组尺度模型来自易出错的,长时间读取的程序集
  14. Windows10没有画图软件的解决方式
  15. RK987按键失灵问题
  16. idea的工具栏显示
  17. 献计《权力的游戏》珊莎•斯塔克
  18. 如何选择Java培训机构?
  19. Homekit智能家居之智能吸顶灯
  20. 浅谈一下线程中synchronized块、wait,notify的用法

热门文章

  1. 会php学java入门要多久_php8(java入门要多久)
  2. l启动进程 linux,《日子》. linux 查看进程启动路径
  3. 【复习】使用 SQLiteDatabase 操作 SQLite 数据库
  4. 无线 在linux叫什么地方,请问有知道atheros无线网卡Linux驱动官方下载地址是什么吗?...
  5. android 减速动画,Android View Animation
  6. 高德地图定位精度多少米_中美俄卫星定位精度分别是多少?美0.1米,俄10米,中国呢?...
  7. 深入浅出VC++串口编程之基于Win32 API
  8. 如何修改wince的网络配置
  9. wifi 小米pro 驱动 黑苹果_搞定小米黑苹果自带WIF,又可省一个USB接口了
  10. 轻gc和重gc分别在什么时候发生_GC发展与现状