apk 中 Android Deep Linking 对应规则提取

查看 96|回复 9
作者:p1s1lver   
在 Android 设备自动化的过程中,有时候会需要提取 deep linking 直接跳转而不是做过多的 UI 操作,这里进行了脚本的封装,可以直接定位代码中的包名,从而找到对应的解析逻辑,编写 deeplink
- Android Deep Linking 是一种允许应用程序通过链接打开特定页面的技术,用于提高用户体验。
- Android Deep Linking 工作原理:通过在 `AndroidManifest.xml` 中注册 URI 模式来实现的。当用户点击一个链接时,Android 系统会检查链接是否与已注册的 URI 模式匹配,匹配成功自动打开。
AndroidManifest.xml 文件中的 URI 模式定义:`AndroidManifest.xml` 中根据如下规则设定,定义 app 可以处理的 URI 格式的字符串
1. activity 标签中添加 `intent-filter` 标签,并在其中添加 `action`、`category` 和 `data` 标签
2. action 标签的值必须为 `android.intent.action.VIEW`
3. category 标签的值必须包含 `android.intent.category.DEFAULT` 和 `android.intent.category.BROWSABLE`
4. data 标签的值必须包含 `android:scheme`、`android:host` 和 `android:pathPrefix`
[XML] 纯文本查看 复制代码
   
        
        
        
        
   

这里对该逻辑进行了封装。
项目地址:https://github.com/p1s1lver/AndroidReverseScripts/tree/master/deeplink_extractor

标签, 规则

p1s1lver
OP
  

这里的 AndroidManifest.xml 文件是 apktool 反编译出来的,不能用 aapt 命令解析出的文件,因为那个是简化版本的,
好处就是可以快速知道 deeplink 开头是什么,然后对应代码的位置是什么,快速写出 start activity 命令
一般是自动化程序使用,逆向的话,可以减少一点调试的时间
Xieweiping   

感谢分享  占楼
p1s1lver
OP
  

也可以使用命令行直接进行调用,这个还是非常方便的,推荐!


2023-03-27-17-43-28.gif (349.57 KB, 下载次数: 0)
下载附件
2023-3-27 17:44 上传

Avicii111   

感谢分享!感谢大佬!
wanghaoxu   

感谢分享!
zhnlwwdzz   

原来是这么弄的,谢谢大佬分享。
exiaowe   

感谢分享
weiyanli   

感谢分享
Saniq   

学习大佬
您需要登录后才可以回帖 登录 | 立即注册

返回顶部