吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]
查看: 7554|回复: 56
收起左侧

[Android 原创] 小米应用商店应用下载逻辑分析

  [复制链接]
Doratmon 发表于 2025-6-27 14:55
本帖最后由 Doratmon 于 2025-6-27 14:59 编辑

背景

由于工作需要,最近浅浅分析了一下小米应用商店下载应用的逻辑,发现一些有趣的地方,因此记录一下。

测试环境

小米8(Root)、应用商店_4.97.0、reqable

抓包下载应用请求

需要先安装好reqable CA证书,具体可以参考安装证书 | Reqable · API抓包调试 + API测试一站式工具

推荐大家都试一下reqable,它是小黄鸟(HttpCanary)的进化版,支持电脑分析手机流量,且能够以应用程序为单位筛选流量信息,比如我只关心“应用商店“的流量,就可以筛选“应用商店”。

比如我要下载小红书APP,点击下载,回到Reqable分析后发现如下请求与下载行为。

image-20250627143021-ag7m23e.png

在响应体中返回了apk的下载地址信息(由字段url和host组成),经测试,访问https://pfga-accelerate.market.xiaomi.com/download/AppStore/0c72ebbf503244d939c7691ffd9e7329b0450b038 确实可以直接下载小红书。

{
  "apkSize": 131785961,
  "apkSizeV2": 131785961,
  "apks": [
    {
      "module": "main",
      "type": "standalone",
      "url": "AppStore/0c72ebbf503244d939c7691ffd9e7329b0450b038",
      "hash": "ef9aa32156929dc0a2056be96ea6b4ef",
      "size": 131785961,
      "diffSize": 0,
      "compressSize": 0
    }
  ],
  "obb": [],
  "dms": [],
  "thumbnail": "https://sf0.market.xiaomi.com/thumbnail/",
  "fitness": 0,
  "id": 69661,
  "releaseKeyHash": "d72f9c996b008aa6a26878fb01253008",
  "channelApkId": -1,
  "refPosition": -1,
  "icon": "AppStore/03afa156710c048c989bbe98e74671d50277854df",
  "unfitnessType": 0,
  "filterCode": 0,
  "versionCode": 8890813,
  "downloadCtl": 0,
  "bspatchVersion": 2,
  "patchConfig": {
    "threadCount": 3
  },
  "compressType": 1,
  "compressLevel": "",
  "packageName": "com.xingin.xhs",
  "versionName": "8.89.0",
  "downloadExtraParams": "{\"useKcgEngine\":false}",
  "ext_apm_extraParamsSid": "default",
  "hosts": [
    "https://pfga-accelerate.market.xiaomi.com/download/",
    "https://fgc0.market.xiaomi.com/download/"
  ],
  "useSelfEngine": false,
  "useCrashEscape": false,
  "useSpeedInstallV2": false,
  "isSystemApp": false,
  "showDeskDynamicIcon": false,
  "traceId": "71bc2994166c4f02bce5290524697502",
  "validateManifest": false,
  "downloadSource": "icon",
  "failOverRules": [
    {
      "errCode": 152,
      "engineCode": 1
    },
    {
      "errCode": 151,
      "engineCode": 1
    },
    {
      "errCode": 111136,
      "engineCode": 1
    },
    {
      "errCode": 111176,
      "engineCode": 1
    },
    {
      "errCode": 150,
      "engineCode": 1
    },
    {
      "errCode": 111128,
      "engineCode": 1
    }
  ],
  "host": "https://pfga-accelerate.market.xiaomi.com/download/",
  "totalDownloadSize": 131785961,
  "exp_id": "1901245,1628665,1851678,1890590,1894878,1805848,1894873,1623262,1846069,1835477,1827793,1887479,1700402,1411227,1689163,1627499,1900104,1812259,1384460,1891782,1497480,1695910",
  "useExpId": "1628665,1700402,1497480,1695910"
}

但是后续的请求中并没有发现对pfga-accelerate.market.xiaomi.com的请求,手机又完成了小红书的安装,这是为什么?

观察响应体的字段信息, 有如下发现

"useSelfEngine": false,  "useSpeedInstallV2": false表明使用了系统级的下载服务,而不是HTTP应用内的下载,"patchConfig": {"threadCount": 3}表明使用了多线程下载配置

综上表明,下载请求不由小米应用商店发出,可能委托给了其他应用。继续分析请求发现,实际下载请求由一个叫MTP本机的应用发出。

image-20250627143321-t3w3vc3.png

MTP本机是一个什么应用?MTP = Media Transfer Protocol(媒体传输协议)是一个由微软开发的协议,用于在不同设备之间传输媒体文件和其他数据。说起来我们并不陌生,使用USB线连接电脑与手机,使用文件传输时就是使用的MTP协议。

小米应用商店为什么委托MTP下载应用?因为MTP是一个系统级应用,可以提高下载的稳定性和效率,利用系统级的文件管理能力,这样用户体验也会更好。

MTP里的代码逻辑就没有分析了,主要梳理小米应用商店的下载过程是由哪些应用参与的。

免费评分

参与人数 9吾爱币 +15 热心值 +8 收起 理由
wwm9985 + 1 + 1 我很赞同!
qtfreet00 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
635217113 + 1 + 1 谢谢@Thanks!
Carinx + 1 + 1 用心讨论,共获提升!
l686 + 1 + 1 谢谢@Thanks!
dukkha739 + 1 + 1 谢谢@Thanks!
晒太阳的猫 + 1 谢谢@Thanks!
GUANylimhs + 1 + 1 我很赞同!
机器猫汪汪汪 + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

magiclyan 发表于 2025-6-27 15:39
使用MTP协议也有一个额外好处:
当批量更新下载安装的时候一旦出现未响应等情况
不会造成整个流程被挂起而是继续执行

不过麻烦的也是这个不支持中断机制会继续完成后续行为;无论是否具有root权限

一开始以为是商店的root权限后来发现不是
cxqdly 发表于 2025-6-27 18:10
yujianlixi 发表于 2025-6-27 15:09
1096315079a 发表于 2025-6-27 16:02
太强了!!!!!!!!!!
 楼主| Doratmon 发表于 2025-6-27 16:14
magiclyan 发表于 2025-6-27 15:39
使用MTP协议也有一个额外好处:
当批量更新下载安装的时候一旦出现未响应等情况
不会造成整个流程被挂起 ...

是的 多线程后台下载吧
jianfengjx 发表于 2025-6-27 16:29
小米应用商店广告太多了,搜索栏全是应用推荐
Mint_Grass 发表于 2025-6-27 17:02
同款app安装上自带广告,但是华为商店里安装的就没广告。
华为商店适用吗?
iamPorter 发表于 2025-6-27 19:55
Mint_Grass 发表于 2025-6-27 17:02
同款app安装上自带广告,但是华为商店里安装的就没广告。
华为商店适用吗?

MIUI10的时候小米确实会很神奇的给少数程序添加一个系统级的开屏广告(但有的程序根本不是在应用商店下载的啊喂,好在现在不搞了),但你说小米应用商店和华为应用商店能下到同一个软件的不同版本就挺逆天了
在别的手机装的华为应用市场还是正常在应用内部下载软件,但至于在EMUI/Harmony OS 4上咋样,可能走的是MTP,具体也得手动研究,毕竟在自己品牌的手机上权限肯定高出一些,也可以用上一些奇怪的接口
yibaoshutiao 发表于 2025-6-27 21:25
为什么不用下载管理程序,又是乱改吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-7-21 19:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表