AI Photo Enhancer - Evoke Flutter AOT 深挖

静态 APK / Manifest / blutter AOT 输出分析;未做真机、MITM、支付或 Frida 动态验证。

Packageai.photo.enhancer.ig.tiktok.editor.remini.pixelup.hd.free
Version3.9.1-26052281
EngineFlutter AOT / Dart 3.8.1 / android arm64
Date2026-06-10

最重要的 5 条结论

1. Flutter AOT 可解析blutter 已完成,Dart 层主包是 guru_photo_enhancer 与 Guru 共享库。
2. 任务制图片产品选图、上传、创建任务、轮询、下载、历史恢复构成核心链路。
3. 混合变现订阅、trial、积分、rewarded/interstitial/banner 广告共存。
4. 后端依赖明确命中 api.thebetter.aiapi3.thebetter.ai、S3/CDN 和订单/auth API。
5. Remote Config 关键deployment、CDN、订阅宽限、广告和 launch IAP 都受远端配置影响。

输入证据

类型路径用途
静态总报告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 summarydata/extracted/.../deep-tools/deep-tool-summary.json执行状态、Dart 版本和输出目录
blutter 输出.../flutter-aot/arm64-v8a/apk_contents__config.arm64_v8a.apk/objs.txtpp.txtblutter_frida.js对象池、程序池、Frida hook 模板

产品 / 实现逻辑图

启动deep link / push / getStart / userGuide / allowNotification
首页home / aiLab / history / theme list / banner
选择能力enhance / avatar / retake / dream film / chat edit / watermark
选图上传imagePicker / photo_manager / UploadImageRequestV2 / S3StorageModel
任务处理image inference push / task migrate / polling / result states
结果沉淀processPreview / result / CDN download / history DB

商业和配置横切层

资格判断isVip / pointsPrice / watchAd / quota
广告 gaterewarded / interstitial / banner / MREC / MAX
付费premium / trial intro / points purchase / Google Play Billing
订单校验orders/android / purchase/status / VipStateManager
Remote Configdeployment / cdn / subscription grace / ads / launch IAP
归因分析Firebase / AppsFlyer / Adjust / ad revenue events

直接证据表

主题短片段 / 关键词证据路径
包和引擎flutterDart version: 3.8.1Target: android arm64brief.mddeep-tool-summary.json
路由/getStart/userGuide/allowNotification/home/imagePicker/processPreview/resultpp.txt
AI 能力入口/enhanceFunctionList/aiAvatar/chatEdit/digitalAvatarCreator/dreamFilmResult/retakeResultpp.txt
任务链路PhotoTaskManagerUploadImageRequestV2PhotoEffectCreateRequestModelTaskPollingResultV2Modelblutter_frida.js
处理状态uploadingprocessingdownloadingfinishednoFaceErrornsfwErrorpp.txt
API/api/v1/image/inference/push/api/v1/task/migrate/api/v2/point/infopp.txt
订单/order/api/v1/orders/android/order/api/v1/orders/products/purchase/statuspp.txt
base URLhttps://api.thebetter.aihttps://api3.thebetter.aihttps://saas.castbox.fmpp.txt
CDNcdn_confighttps://cdn2.photo-enhancer.fungame.studiopp.txt
SKUph.i.sub.vip.p1y.trialph.i.sub.vip.p1m.trialph.i.sub.vip.p1wph.a.iapc.lora.999objs.txt
积分points_info_keypointsPriceRemain Pointsuser points not enoughobjs.txt / pp.txt
广告RewardedVideoAdInterstitialAdBannerAdMixedInterAdsModewatchRewardAdsobjs.txt / blutter_frida.js
归因analytics_appsflyer_idappsflyer_conversion_dataAdjust Attribution Debugobjs.txt / pp.txt
Remote Configdeployment_configcdn_configsubscription_grace_daysclient.remote.configpp.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。
  • comfyUIloraIdprompt 暗示后端模型编排,不能静态等同于具体模型供应商。
  • RevenueCat 只有静态 SDK 线索,本轮 Dart 业务证据更偏 Google Play Billing + 自研 validator。

分区分析

Onboarding

路由存在 /getStart/userGuide/allowNotification,本地字段有通知授权展示/请求/拒绝计数。推断它把首次价值展示、权限解释和通知召回放在启动链路早期。

核心处理链路

关键类覆盖 ImagePickerControllerPhotoTaskManagerUploadImageRequestV2PhotoEffectCreateRequestModelTaskPollingResultV2ModelDownloadResultModel。状态机覆盖上传、处理、下载、完成及 no face / NSFW / VIP / 点数错误。

付费 / 广告 / 归因

付费路由是 /premium/premiumTrialIntro/pointsPurchase;SKU 覆盖周/月/年订阅、trial、一次性 VIP 和 Lora 点数。广告侧有 rewarded/interstitial/banner/MREC/MAX;归因侧有 Firebase、AppsFlyer、Adjust debug 和广告收入事件。

接口 / 后端依赖

核心 host 候选是 https://api.thebetter.aihttps://api3.thebetter.aihttps://saas.castbox.fm。核心 path 覆盖 auth token、image inference、task migrate、points、order report、purchase status 和 server time。

Remote Config

Remote Config 既控制技术配置,也控制商业配置:deployment_configcdn_configsubscription_grace_days、广告默认配置、launch IAP、AB 属性。静态只能证明 key 和调用存在,不能证明当前线上值。

可复刻学习项

学习项可复刻方式注意点
模板驱动首页用配置管理主题、banner、hot/new、AI avatar/filter 分类模板必须有状态、owner、review cadence 和清理规则
任务制 AI 处理选图、上传、创建任务、轮询、下载、history 恢复MVP 先单模型队列,保留 task id、状态、错误码
混合 gateVIP、points、rewarded ad 分支统一到资格判断层先定义免费额度、广告频控和失败兜底
Remote Config 控制面deployment、CDN、广告、订阅策略和 launch IAP 远端开关要有默认值、缓存策略和回滚开关
投放闭环Firebase ID、AppsFlyer conversion、Adjust debug、ad revenue 事件动态样本写 ignored data,不把密钥或敏感值写进报告

动态验证点

  1. 首次安装页面顺序:确认 /getStart/userGuide/allowNotification 的真实展示和跳过条件。
  2. 免费任务 HAR:确认 host、path、payload、上传方式、任务 id、轮询间隔和结果下载 URL。
  3. VIP/点数/广告 gate:触发高级主题、点数不足、每日额度用尽,观察 paywall、rewarded ad、points purchase 分支。
  4. Paywall:截图 SKU、trial、价格、本地化文案和 restore purchase 行为。
  5. Remote Config:抓当前 deployment_configcdn_configsubscription_grace_days、广告配置和 launch IAP。
  6. 归因与广告收入:冷启动、deep link、push open、install conversion 和 ad revenue 是否按预期上报。

阻塞和边界

未动态验证:无法确认真实页面顺序、远端配置值、接口响应 schema、价格、广告频控和模型供应商。

Frida 脚本需改造:blutter_frida.js 默认 hook 地址是 0xdeadbeef,需要填入目标函数偏移。

RevenueCat 口径:静态报告有 revenuecat 线索,但本轮 Dart 层强证据是 Google Play Billing、自研 validator 和订单 API。