最重要的 5 条结论
guru_photo_enhancer 与 Guru 共享库。api.thebetter.ai、api3.thebetter.ai、S3/CDN 和订单/auth API。输入证据
| 类型 | 路径 | 用途 |
|---|---|---|
| 静态总报告 | research/app-package-forensics/ai-photo-enhancer-evoke/apk-pure-latest/analysis.json | 包名、权限、组件、deep link、SDK、endpoint 候选 |
| 静态摘要 | research/app-package-forensics/ai-photo-enhancer-evoke/apk-pure-latest/brief.md | 人读摘要 |
| 证据账本 | research/app-package-forensics/ai-photo-enhancer-evoke/apk-pure-latest/evidence.csv | 直接证据 / 推断分级 |
| blutter summary | data/extracted/.../deep-tools/deep-tool-summary.json | 执行状态、Dart 版本和输出目录 |
| blutter 输出 | .../flutter-aot/arm64-v8a/apk_contents__config.arm64_v8a.apk/objs.txt、pp.txt、blutter_frida.js | 对象池、程序池、Frida hook 模板 |
产品 / 实现逻辑图
商业和配置横切层
直接证据表
| 主题 | 短片段 / 关键词 | 证据路径 |
|---|---|---|
| 包和引擎 | flutter、Dart version: 3.8.1、Target: android arm64 | brief.md、deep-tool-summary.json |
| 路由 | /getStart、/userGuide、/allowNotification、/home、/imagePicker、/processPreview、/result | pp.txt |
| AI 能力入口 | /enhanceFunctionList、/aiAvatar、/chatEdit、/digitalAvatarCreator、/dreamFilmResult、/retakeResult | pp.txt |
| 任务链路 | PhotoTaskManager、UploadImageRequestV2、PhotoEffectCreateRequestModel、TaskPollingResultV2Model | blutter_frida.js |
| 处理状态 | uploading、processing、downloading、finished、noFaceError、nsfwError | pp.txt |
| API | /api/v1/image/inference/push、/api/v1/task/migrate、/api/v2/point/info | pp.txt |
| 订单 | /order/api/v1/orders/android、/order/api/v1/orders/products/purchase/status | pp.txt |
| base URL | https://api.thebetter.ai、https://api3.thebetter.ai、https://saas.castbox.fm | pp.txt |
| CDN | cdn_config、https://cdn2.photo-enhancer.fungame.studio | pp.txt |
| SKU | ph.i.sub.vip.p1y.trial、ph.i.sub.vip.p1m.trial、ph.i.sub.vip.p1w、ph.a.iapc.lora.999 | objs.txt |
| 积分 | points_info_key、pointsPrice、Remain Points、user points not enough | objs.txt / pp.txt |
| 广告 | RewardedVideoAd、InterstitialAd、BannerAd、MixedInterAdsMode、watchRewardAds | objs.txt / blutter_frida.js |
| 归因 | analytics_appsflyer_id、appsflyer_conversion_data、Adjust Attribution Debug | objs.txt / pp.txt |
| Remote Config | deployment_config、cdn_config、subscription_grace_days、client.remote.config | pp.txt |
直接证据 vs 推断
直接证据
- Manifest 有 27 个权限,包含相机、图片读取、网络、通知、Billing、AD_ID 和 AdServices。
- 路由表、API path、SKU、Remote Config key 和任务状态均来自 blutter 输出。
- 本地 SQLite 表包含 history、inventory、orders,说明有历史和购买状态持久化。
- 广告 SDK 覆盖多个 mediation/network,Dart 层也有 MAX、rewarded、interstitial、banner 相关类。
推断
- 首次路径大概率是 getStart -> userGuide -> allowNotification -> home,但需真机确认跳过条件。
- 免费用户可能通过点数、广告或订阅 gate 被分流,具体阈值依赖 remote config/API。
comfyUI、loraId、prompt暗示后端模型编排,不能静态等同于具体模型供应商。- RevenueCat 只有静态 SDK 线索,本轮 Dart 业务证据更偏 Google Play Billing + 自研 validator。
分区分析
Onboarding
路由存在 /getStart、/userGuide、/allowNotification,本地字段有通知授权展示/请求/拒绝计数。推断它把首次价值展示、权限解释和通知召回放在启动链路早期。
核心处理链路
关键类覆盖 ImagePickerController、PhotoTaskManager、UploadImageRequestV2、PhotoEffectCreateRequestModel、TaskPollingResultV2Model、DownloadResultModel。状态机覆盖上传、处理、下载、完成及 no face / NSFW / VIP / 点数错误。
付费 / 广告 / 归因
付费路由是 /premium、/premiumTrialIntro、/pointsPurchase;SKU 覆盖周/月/年订阅、trial、一次性 VIP 和 Lora 点数。广告侧有 rewarded/interstitial/banner/MREC/MAX;归因侧有 Firebase、AppsFlyer、Adjust debug 和广告收入事件。
接口 / 后端依赖
核心 host 候选是 https://api.thebetter.ai、https://api3.thebetter.ai、https://saas.castbox.fm。核心 path 覆盖 auth token、image inference、task migrate、points、order report、purchase status 和 server time。
Remote Config
Remote Config 既控制技术配置,也控制商业配置:deployment_config、cdn_config、subscription_grace_days、广告默认配置、launch IAP、AB 属性。静态只能证明 key 和调用存在,不能证明当前线上值。
可复刻学习项
| 学习项 | 可复刻方式 | 注意点 |
|---|---|---|
| 模板驱动首页 | 用配置管理主题、banner、hot/new、AI avatar/filter 分类 | 模板必须有状态、owner、review cadence 和清理规则 |
| 任务制 AI 处理 | 选图、上传、创建任务、轮询、下载、history 恢复 | MVP 先单模型队列,保留 task id、状态、错误码 |
| 混合 gate | VIP、points、rewarded ad 分支统一到资格判断层 | 先定义免费额度、广告频控和失败兜底 |
| Remote Config 控制面 | deployment、CDN、广告、订阅策略和 launch IAP 远端开关 | 要有默认值、缓存策略和回滚开关 |
| 投放闭环 | Firebase ID、AppsFlyer conversion、Adjust debug、ad revenue 事件 | 动态样本写 ignored data,不把密钥或敏感值写进报告 |
动态验证点
- 首次安装页面顺序:确认
/getStart、/userGuide、/allowNotification的真实展示和跳过条件。 - 免费任务 HAR:确认 host、path、payload、上传方式、任务 id、轮询间隔和结果下载 URL。
- VIP/点数/广告 gate:触发高级主题、点数不足、每日额度用尽,观察 paywall、rewarded ad、points purchase 分支。
- Paywall:截图 SKU、trial、价格、本地化文案和 restore purchase 行为。
- Remote Config:抓当前
deployment_config、cdn_config、subscription_grace_days、广告配置和 launch IAP。 - 归因与广告收入:冷启动、deep link、push open、install conversion 和 ad revenue 是否按预期上报。
阻塞和边界
未动态验证:无法确认真实页面顺序、远端配置值、接口响应 schema、价格、广告频控和模型供应商。
Frida 脚本需改造:blutter_frida.js 默认 hook 地址是 0xdeadbeef,需要填入目标函数偏移。
RevenueCat 口径:静态报告有 revenuecat 线索,但本轮 Dart 层强证据是 Google Play Billing、自研 validator 和订单 API。