Avatarro: AI Avatar Maker Flutter AOT 深挖

样本:kallossoft.avatar / Avatarro / Android XAPK / version 3.0.9

分析日期:2026-06-10。范围:静态报告、APK 解包、blutter objs.txt / pp.txt / blutter_frida.js

一页结论

Flutter AOTblutter 成功,Dart 3.9.2,Android arm64。
36 个 API/api/prod/* 覆盖训练、filter、交易、下载、举报。
重商业化Adapty + Google Billing + 广告聚合 + Remote Config。

直接证据能证明类名、字符串、接口路径、SDK 接入和默认配置键;线上开关值、真实 host、广告频次和付费墙顺序必须动态验证。

直接证据 vs 推断

主题直接证据推断置信度
OnboardingOnboardingOne/Two/ThreeOnboardingV3、多组 onboarding_* assets多版本 onboarding 由 Remote Config 切换
头像训练TrainingPhotosStateAdd at least 10 images、三段上传 API至少 10 张图,服务端训练,客户端轮询结果
AI FilterFilterProcessProvider、ML Kit face/selfie、upload-init-image本地做人脸/人像校验与 mask/crop,服务端生成
付费Adapty 多 paywall 类、Billing Activity、on-user-subscribedAdapty 与自有后端共同维护权益/额度
广告ProcessingAdsPageContinueWithAdsModalCASRewarded、多广告网络 Activity免费/限额路径用广告换继续生成中高
归因AppsFlyer 标记、OneSignal 类、Firebase Analytics/Auth/Remote Config匿名 Firebase token + 归因开关受 Remote Config 控制

产品 / 实现逻辑图

1. SplashSplashPage
初始化 Firebase、Remote Config、Auth、分析。
2. OnboardingOnboardingV3
展示 avatar / fashion / img-to-img 素材卖点。
3. Paywall 触发after onboarding、new training、style select、daily limit、locked style。
4. HomeAvatarHomePageFilterPacksHomePage 分流。
5A. 多图训练选风格,至少 10 张图,crop/旋转后上传。
6A. 训练 APIstart-upload-training-v2
upload-training-photo-v2
upload-training-finished-v2
7A. 轮询结果get-my-trainings
get-not-downloaded-inferences
get-all-generated-photos
8A. Generate more随机、按 style、视频 slideshow、删除、举报。
5B. 单图 FilterML Kit face/selfie 检测,crop/mask,参数含 CFG、steps、hair color。
6B. init image APIupload-init-image
upload-custom-mask
generate-more-photos-for-init-image
7B. 广告/限额ProcessingAdsPage
ContinueWithAdsModal
CASRewarded
8B. 静态止点真实 host、线上开关、图片删除承诺、广告频次待动态验证。

Onboarding

直接证据

SplashPageState OnboardingOne/Two/Three OnboardingV3State _OnboardingV3BuilderState assets/images/onboarding_avatar_* assets/images/onboarding_fashion_* assets/images/onboarding_img_to_img_*

Adapty onboarding 事件包括 onboarding_startedscreen_presentedscreen_completedproducts_screen_presentedonboarding_completed

推断

Onboarding 负责卖点展示和付费前置,且版本、跳过、paywall 触发点由 Remote Config 控制。

头像生成链路

链路关键直接证据实现判断
多图人物训练 InitialStyleSelectorStateTrainingPhotosStateAdd at least 10 imagesstart-upload-training-v2upload-training-photo-v2upload-training-finished-v2 选择最多 5 个 style,至少 10 张训练图,客户端 crop/旋转后批量上传,服务端启动训练。
训练结果 get-my-last-training-statusget-my-trainingsget-not-downloaded-inferencesget-all-generated-photosset-inference-downloaded 异步轮询/下载/缓存结果,下载完成后回写状态。
单图 filter FilterSettingsPageStateFilterProcessProvidergoogle_mlkit_face_detectorgoogle_mlkit_selfie_segmenterupload-init-image 本地做人脸、人像、mask/crop 处理,再上传 init image 给服务端生成。
单图继续生成 generate-more-photos-for-init-imagegenerate-multiple-photos-for-init-imageget-not-downloaded-inferences-for-init-image 围绕同一 init image 批量生成更多结果,并复用轮询/下载结构。

付费 / 广告 / 归因

Paywall

直接证据显示多种 Adapty widget:AdaptySubscriptionOptionsPaywallAdaptyShortPaywallWithReviewsAdaptyDailyLimitPaywallAdaptyAvatarCouponsPaywallAdaptyFashionCouponsPaywall。事件包含 purchase/restore/rendering/loading products 全链路。

Remote Config key 显示 placement:Main_PWshort_pwAvatars_packFashion_pack0_tryEach_launchpressed_lockedhq_no_WM

广告

直接证据:ProcessingAdsPageContinueWithAdsModalCASRewardedshowAdsshowAdOptionToGenerate。Manifest 中还有 AppLovin、Google Ads、Pangle、Chartboost、Meta Audience Network、Fyber、InMobi、IronSource、Mintegral、Unity Ads、Vungle、Yandex、Bigo 等组件。

归因 / 推送

直接证据:AppsFlyer 标记、OneSignal 类、Firebase Analytics/Auth/Remote Config/Crashlytics/InAppMessaging。推断:Firebase 匿名登录提供 authToken,AppsFlyer 初始化可能受 initializeAppsFlyer 控制。

接口 / 后端依赖

领域API 路径
健康 / 配置/api/prod/is-up, /api/prod/is-service-available-v2
用户 / 交易/api/prod/sync-user, /api/prod/sync-store-transactions-v2, /api/prod/on-user-subscribed, /api/prod/get-consumables
训练上传/api/prod/start-upload-training-v2, /api/prod/upload-training-photo-v2, /api/prod/upload-training-finished-v2
训练结果/api/prod/get-my-last-training-status, /api/prod/get-my-trainings, /api/prod/get-not-downloaded-inferences, /api/prod/get-inference-status, /api/prod/get-all-generated-photos
风格 / 更多生成/api/prod/get-styles, /api/prod/save-styles-selected, /api/prod/generate-more-photos-randomly, /api/prod/generate-more-photos-by-style, /api/prod/generate-video-slideshow
AI Filter/api/prod/get-filter-styles, /api/prod/get-inference-features, /api/prod/upload-init-image, /api/prod/upload-custom-mask, /api/prod/generate-more-photos-for-init-image, /api/prod/generate-multiple-photos-for-init-image
反馈 / 管理/api/prod/send-user-action-on-photo, /api/prod/flag-job-and-template, /api/prod/delete-inference-job, /api/prod/remove-training, /api/prod/add-user-style-request

Base host 直接字符串包括 avatarroServerUrlserverUrldiff.kallossoft.com。Firebase 配置存在,但本报告不记录密钥值。

可复刻学习项

动态验证点

验证项方法产物
首启路径清安装、屏幕录制、logcatsplash -> remote config -> onboarding/paywall/home 顺序
Remote Config 线上值Frida hook getAll 或抓包paywall、ads、limit、onboarding 实际配置
真实 API hostMITM + hook http.Client / Uribase URL、headers、auth token、body
训练上传上传 10 张图上传字段、图片压缩/裁剪、失败重试
单图 filter无脸/单脸/多人脸/带 mask 图本地拦截条件、上传内容、生成参数
广告路径免费用户触发 daily limit / continue with adsCAS rewarded 展示和奖励回调
购买同步测试购买/恢复Adapty entitlement 和自有后端同步结果

阻塞 / 静态止点

安全记录:静态输出中存在 Firebase 配置密钥字段;报告只记录配置存在和项目标识层面的事实,不记录密钥值。