UpFoto - AI Photo Enhancer Flutter AOT 深挖

样本:ai.photo.enhancer.photoclear / version 1.4.1.118 / 日期:2026-06-10

边界:静态报告 + Android 解包 + blutter 输出;未做真机、抓包、Frida 动态验证。

121Manifest Activity
71First-party Activity
31Native libraries
Dart 3.4.0blutter completed

一句话判断

UpFoto 是一个 Flutter AOT + 原生 Activity 混合架构的照片增强产品:本地视觉处理、结果页包装、广告 mediation、订阅/IAP 和自有归因上报都很完整;真正后端 host、上传链路、付费触发和广告频控仍必须动态验证。
Flutter AOT Google Billing Ad mediation Attribution log Local face/model assets Remote config bridge

5 条结论

  1. 直接证据:Manifest 暴露完整产品页面面:Splash、Welcome/Guide、Permission、Main、Photo list/crop/edit/process/result/share、AI video、Avatar、Restore、Filter、IAP/Sub。
  2. 直接证据:付费是核心路径:Billing 权限、Google Billing Proxy、十多套 IAP/Sub Activity、half-off/free-trial/no-ads/remove-watermark/HD 资源同时存在。
  3. 直接证据:广告栈很宽:AppLovin、Pangle/ByteDance、Facebook Audience Network、Google Ads、InMobi、IronSource、MyTarget;AOT 有 load/show/close/combination/splash/guide 广告桥。
  4. 推断:后端 host 来自 native config:AOT 只恢复 /api/contribute/api/attr/report_apiUserHostloadConfig,真实域名没有静态恢复。
  5. 推断:图像处理至少有本地预处理和编辑能力;是否云端增强未被静态证明,需要照片选择后的网络和任务流验证。

证据矩阵

主题直接证据判断
包身份ai.photo.enhancer.photoclear,version 1.4.1.118verified
Flutter AOTblutter 对 arm64 split 完成分析,生成 objs.txtpp.txtblutter_frida.jsverified
权限INTERNET、媒体读取、BILLINGACCESS_ADSERVICES_*AD_ID、Install Referrerverified
OnboardingRSplashRWelcome*RGuideCRPermissionguide_c/*.mp4direct
核心照片链路RPhotoListRPhotoCropRPhotoEditRProcessRResult*direct
本地视觉能力models_bundled/*.tflite/.pb/.emdlibMNN*libface_detector_v2_jni.so、LUT assetsdirect
付费RIap*Iap*ActivitySubInfoActivitySubManagerActivity、IAP/Pro/No Ads 资源direct
广告FlutterAppApi.onAdShowedNativeAppGlobalApi.loadAdNativeSplashApi.showAdNativeGuideLanApi.showCardAddirect
后端/api/contribute/api/attr/report_apiUserHostno host confighost unknown
归因install_referreradjustafgoogle_ad_idadvertisingIdAttr_Logdirect

产品 / 实现逻辑图

启动RSplash
RLaunch
加载 config / attribution
引导RWelcome*
RGuideC
guide 视频 + 广告卡
权限RPermission
媒体读取 / 网络 / 通知
主页RMain
功能入口 + 广告加载
选择RPhotoList
RPhotoCrop
编辑RPhotoEdit
LUT / sharpen / contrast
处理RProcess
MNN / face model / native lib
结果RResult*
HD / Share / Save / Paywall
AI 扩展RAiVideo*
RAvatar*
Restore*
付费RIap*
Sub*
trial / half-off / no ads
广告loadAd
showAd
loadCombinationAd
后端/api/contribute
/api/attr/report
host from config

分区分析

Onboarding

  • 直接证据:RSplash / RLaunch / RWelcomeC / RWelcomeNative / RWelcomeX / RGuideC / RPermission
  • 直接证据:assets/guide_c/welcome.mp4guide_1..4.mp4
  • 推断:Splash/Guide 由 native fragment、remote config 和广告桥共同控制。

核心处理链路

  • 直接证据:照片选择、裁剪、编辑、处理、预览、结果、分享 Activity 完整存在。
  • 直接证据:face/model assets、MNN/GPU/native 图像库和 LUT 同时存在。
  • 推断:有本地即时处理能力;云端高清增强仍未证明。

付费 / 广告 / 归因

  • 直接证据:Billing + IAP/Sub Activity + half-off/free-trial/no-ads/remove-watermark/HD 资产。
  • 直接证据:多广告 SDK 和 Flutter/native 广告桥。
  • 直接证据:Attr_Log、install referrer、Adjust、AppsFlyer-like af 字段、GAID 字段。

接口 / 后端依赖

  • 直接证据:/api/contribute/api/attr/report
  • 直接证据:NativeAppGlobalApi.loadConfigFlutterAppApi.refreshAndGetConfigcommon_configgl_config
  • 阻塞:真实 host、payload、触发点需要动态抓包或 hook。

可复刻学习项

模块可复刻点价值注意
首启引导guide 视频 + native splash 广告 + remote config传达前后对比和卖点,保留变现位控制广告打扰和权限前置损耗
图像处理本地模型/LUT/native pipeline 做即时反馈降低首个价值等待成本高质量增强是否云端要独立验证成本
结果页转化HD、去水印、分享、保存、No Ads用户看到结果后转化更自然避免强锁结果导致差评
新用户 offerhalf-off、free-trial、new-user 多套页面可按渠道和 cohort AB订阅条款和取消入口要清晰
归因闭环自有 Attr_Log + SDK/referrer/channel mapping把渠道、广告、IAP 收益串起来隐私合规和用户同意要严谨
广告桥Flutter 发业务意图,native 管 mediation隔离多 SDK 复杂度频控、失败兜底、配置灰度必须完善

动态验证点

优先级验证点方法目标证据
P0真实 API host 和 config 返回值MITM;hook NativeAppGlobalApi.loadConfighost、配置 JSON、广告/IAP 开关
P0首次启动路径清数据安装录屏;hook Activity start / Pigeon channelSplash -> Guide -> Permission -> Main 的真实分支
P0照片增强是否上传选择本地照片后抓包;断网对比上传 endpoint、payload、任务轮询
P0Paywall 触发点和 SKU遍历 New User、Filter、AI Video、Result HD/Remove watermark、No AdsSKU、价格、trial、restore/close 行为
P1广告库存位hook loadAd / showAd / showOHCd / onAdCloseSplash、Guide、结果页、退出广告位
P1归因上传模拟 referrer/deep link,抓 /api/attr/reportatts payload、窗口、重试、去重
P1本地模型职责hook JNI/native lib 或断网跑处理链路离线功能和联网功能边界

阻塞

引用证据路径