返回列表 发新帖

[求助问答] 求助:怎么汉化Open Photo Frame,arsc,dex,XML均找不到

[复制链接]

4

主题

3067

回帖

9403

积分

硕士生

Rank: 6Rank: 6

金币
7138
好评
0
信誉
98

MT论坛最佳新人

发表在  2026-5-27 09:23:11 来自手机  | 显示全部楼层 | 阅读模式  来自 四川
 链接:https://pan.baidu.com/s/1ghcbg-gvTRb607xfj7p1cQ 提取码:1kr6--来自百度网盘超级会员的分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

171

主题

3614

回帖

1万

积分

博士生

Steve2280

Rank: 7Rank: 7Rank: 7

金币
92
好评
133
信誉
167

MT论坛最佳新人2018国庆节MT论坛帅哥MT论坛新人MT论坛灌水老大考神MT论坛侠客MT论坛活跃会员

发表于 2026-5-27 10:17:06 | 显示全部楼层  来自 四川
甚至发的是百度网盘,换个网盘
回复

使用道具 举报

311

主题

4004

回帖

3万

积分

管理员

康哥工作室

Rank: 9Rank: 9Rank: 9

金币
47721
好评
276
信誉
141

小明星MT论坛元老MT论坛优秀版主MT论坛最佳新人MT论坛帅哥2018国庆节2019-5.1节快乐MT论坛侠客MT论坛活跃会员MT论坛灌水老大MT论坛土豪挂机大佬MT论坛新人

发表于 2026-5-27 14:22:54 | 显示全部楼层  来自 山东
Open Photo Frame 汉化指南
基本信息
项目
APK名称Open Photo Frame_1.8.1.apk
包名io.github.micw.openphotoframe
版本1.8.1 (121)
最低SDK24 (Android 7.0)
目标SDK37 (Android 17)
应用类型Flutter 应用
类数量1530
应用标签Open Photo Frame

重要发现
Flutter 应用特性
本应用是使用 Flutter 框架 开发的,这意味着:
  • UI 字符串位置:主要在 Dart 代码中,编译后存储在 lib/armeabi-v7a/libapp.so(Native 库)
  • Android 资源表:仅包含 Android 系统组件的多语言字符串(如 AppCompat、Material 等)
  • 无 ARB 文件:未发现 Flutter 标准的本地化文件(.arb)
  • 硬编码字符串:部分字符串在 DEX 代码中

资源表多语言支持
资源表已包含 86 种语言 的 Android 系统组件翻译,包括:
  • 中文(简体/繁体)
  • 日语、韩语
  • 欧洲多种语言
  • 中东、南亚、东南亚语言


需要汉化的内容
1. 应用名称
位置当前值建议汉化
AndroidManifest.xmlandroid:label="Open Photo Frame"开放相框 / 照片相框

2. DEX 代码中的硬编码字符串
字符串所在类含义建议汉化
Open Photo Frame needs Device Admin permission to turn off the screen at night and wake it up in the morning.LZ0/u;设备管理员权限说明开放相框需要设备管理员权限才能在夜间关闭屏幕并在早晨唤醒。
Keeping app running for continuous slideshowLio/github/micw/openphotoframe/KeepAliveService;保持服务运行保持应用运行以进行连续幻灯片播放

3. Flutter Dart 代码中的字符串
重要:Flutter 应用的主要 UI 字符串在 libapp.so 中,无法直接通过 MT 管理器修改。

汉化方案
方案一:MT 管理器修改(有限汉化)
适用范围:仅能修改 DEX 中的少量硬编码字符串和应用名称
步骤 1:修改应用名称
  1. 1. MT管理器 → 打开 APK
  2. 2. 查看 AndroidManifest.xml
  3. 3. 找到 android:label="Open Photo Frame"
  4. 4. 修改为 android:label="开放相框"
  5. 5. 保存并退出 → 自动签名
复制代码

步骤 2:修改 DEX 字符串
字符串 1:设备管理员权限说明
  1. 1. MT管理器 → 打开 APK → Dex编辑器++
  2. 2. 搜索 → 字符串搜索
  3. 3. 输入:Open Photo Frame needs Device Admin permission
  4. 4. 找到后点击 → 转到定义
  5. 5. 长按字符串 → 编辑
  6. 6. 修改为:开放相框需要设备管理员权限才能在夜间关闭屏幕并在早晨唤醒。
  7. 7. 保存
复制代码

字符串 2:服务运行提示
  1. 1. Dex编辑器++ → 搜索 → 字符串搜索
  2. 2. 输入:Keeping app running for continuous slideshow
  3. 3. 找到后 → 编辑
  4. 4. 修改为:保持应用运行以进行连续幻灯片播放
  5. 5. 保存并退出 → 自动签名
复制代码

方案一局限性
  • 无法修改 Flutter UI 中的大部分字符串
  • 无法修改设置页面、对话框等 UI 文本
  • 无法修改错误提示、状态信息等
  • 可以修改应用名称
  • 可以修改少量 DEX 硬编码字符串


方案二:获取源码并添加本地化(推荐)
适用范围:完整汉化所有 UI 文本
步骤 1:获取源码
本项目是开源项目,源码地址:

  1. git clone https://github.com/micw/open-photo-frame.git
  2. cd open-photo-frame
复制代码

步骤 2:添加 Flutter 本地化支持
2.1 添加依赖(pubspec.yaml)
  1. dependencies:
  2.   flutter:
  3.     sdk: flutter
  4.   flutter_localizations:
  5.     sdk: flutter
  6.   intl: ^0.18.0
复制代码

2.2 创建中文语言文件
创建 lib/l10n/app_zh.arb
  1. {
  2.   "@@locale": "zh",
  3.   "appName": "开放相框",
  4.   "settings": "设置",
  5.   "slideDuration": "幻灯片时长",
  6.   "transitionDuration": "过渡动画时长",
  7.   "blurBorders": "模糊边框",
  8.   "syncInterval": "同步间隔",
  9.   "deleteOrphaned": "删除孤立文件",
  10.   "activeSource": "当前源",
  11.   "nextcloudSettings": "Nextcloud 设置",
  12.   "serverUrl": "服务器地址",
  13.   "username": "用户名",
  14.   "password": "密码",
  15.   "folderSyncMode": "文件夹同步模式",
  16.   "allFolders": "所有文件夹",
  17.   "selectedFolders": "选定文件夹",
  18.   "deviceAdminPermission": "开放相框需要设备管理员权限才能在夜间关闭屏幕并在早晨唤醒。",
  19.   "grantPermission": "授予权限",
  20.   "cancel": "取消",
  21.   "ok": "确定",
  22.   "error": "错误",
  23.   "success": "成功",
  24.   "loading": "加载中..."
  25. }
复制代码

2.3 配置 l10n.yaml
  1. arb-dir: lib/l10n
  2. template-arb-file: app_en.arb
  3. output-localization-file: app_localizations.dart
复制代码

2.4 修改 main.dart
  1. import 'package:flutter_localizations/flutter_localizations.dart';
  2. import 'package:intl/intl.dart';
  3. void main() {
  4.   runApp(const MyApp());
  5. }
  6. class MyApp extends StatelessWidget {
  7.   const MyApp({super.key});
  8.   @override
  9.   Widget build(BuildContext context) {
  10.     return MaterialApp(
  11.       localizationsDelegates: const [
  12.         AppLocalizations.delegate,
  13.         GlobalMaterialLocalizations.delegate,
  14.         GlobalWidgetsLocalizations.delegate,
  15.         GlobalCupertinoLocalizations.delegate,
  16.       ],
  17.       supportedLocales: const [
  18.         Locale('en'),
  19.         Locale('zh'),
  20.       ],
  21.       locale: const Locale('zh'), // 强制中文
  22.       title: '开放相框',
  23.       home: const MainScreen(),
  24.     );
  25.   }
  26. }
复制代码

2.5 替换硬编码字符串
将代码中的硬编码字符串替换为本地化调用:
  1. // 修改前
  2. Text('Settings')
  3. // 修改后
  4. Text(AppLocalizations.of(context)!.settings)
复制代码

步骤 3:重新编译
  1. flutter build apk --release
复制代码


方案三:使用 Frida 动态 Hook(高级)
适用范围:运行时动态替换字符串,无需修改 APK
  1. Java.perform(function() {
  2.     // Hook Flutter 字符串加载
  3.     // 需要根据具体实现编写 Hook 脚本
  4. });
复制代码


推荐方案
需求推荐方案原因
仅修改应用名称方案一(MT管理器)简单快速
完整汉化方案二(源码修改)Flutter 应用标准做法
不想重新编译方案三(Frida)需要技术能力


注意事项
1. Flutter 应用汉化特点
  • Flutter 应用的 UI 字符串不在 Android 的 strings.xml
  • 主要字符串在 libapp.so(编译后的 Dart 代码)中
  • 直接修改 APK 只能改少量 DEX 字符串

2. 签名问题
  • 修改 APK 后需要重新签名
  • 原应用签名会失效
  • 如有签名校验需要额外处理

3. 开源优势
本应用是开源项目,建议通过源码方式进行完整汉化:
  • 可以添加完整的本地化支持
  • 可以提交 PR 贡献给社区
  • 可以自定义所有 UI 文本


附录:APK 结构
  1. Open Photo Frame_1.8.1.apk
  2. ├── AndroidManifest.xml
  3. ├── classes.dex              # Android 原生代码
  4. ├── lib/
  5. │   └── armeabi-v7a/
  6. │       ├── libapp.so        # Flutter Dart 代码(主要 UI 字符串)
  7. │       └── libflutter.so    # Flutter 引擎
  8. ├── assets/
  9. │   └── flutter_assets/
  10. │       ├── assets/
  11. │       │   └── config.json  # 应用配置
  12. │       └── FontManifest.json
  13. ├── res/                     # Android 资源
  14. │   ├── values/              # 默认字符串(英文)
  15. │   ├── values-zh/           # 中文字符串(系统组件)
  16. │   └── ...
  17. └── resources.arsc           # 资源表(已含86种语言)
复制代码


总结
Open Photo Frame 是一个 Flutter 开发的开源相框应用。由于 Flutter 应用的特性,直接通过 MT 管理器修改 APK 只能实现有限的汉化(应用名称和少量 DEX 字符串)。
推荐方案
  • 从 GitHub 获取源码
  • 添加 Flutter 本地化支持(ARB 文件)
  • 创建中文翻译
  • 重新编译 APK

这是 Flutter 应用汉化的标准做法,可以实现完整、可维护的本地化。

报告生成时间: 2026-05-27
分析工具: mt_mcp APK Analyzer
已有1人评分好评 金币 理由
dapi + 1 + 1 很给力!

查看全部评分 总评分:好评 +1  金币 +1 

回复

使用道具 举报

108

主题

1167

回帖

4913

积分

大学生

https://director4168.github.io

Rank: 5Rank: 5

金币
3121
好评
8
信誉
100

考神MT论坛新人MT论坛最佳新人MT论坛帅哥

QQ
发表于 2026-5-27 14:45:36 来自手机  | 显示全部楼层  来自 河南
康哥 发表于 21 分钟前
Open Photo Frame 汉化指南 基本信息 项目值APK名称Open Photo Frame_1.8.1.apk包名io.github.micw.openphotoframe版本1.8.1 (121)最低SDK24 (Android 7.0)目标SDK37 (Android 17)应用类型Flutter 应用类数量1530应用标签Open Photo Frame 重要发现 Flutter

虽然但是,这都能单独发一个帖子出来了
回复

使用道具 举报

4

主题

3067

回帖

9403

积分

硕士生

Rank: 6Rank: 6

金币
7138
好评
0
信誉
98

MT论坛最佳新人

发表于 2026-5-27 15:56:17 来自手机  | 显示全部楼层  来自 四川
@康哥    非常感谢!十分详细的教程,值得学习
回复

使用道具 举报

311

主题

4004

回帖

3万

积分

管理员

康哥工作室

Rank: 9Rank: 9Rank: 9

金币
47721
好评
276
信誉
141

小明星MT论坛元老MT论坛优秀版主MT论坛最佳新人MT论坛帅哥2018国庆节2019-5.1节快乐MT论坛侠客MT论坛活跃会员MT论坛灌水老大MT论坛土豪挂机大佬MT论坛新人

发表于 2026-5-27 15:58:40 | 显示全部楼层  来自 山东
director_mark 发表于 2026-5-27 14:45
虽然但是,这都能单独发一个帖子出来了

直接用mt的mcp服务分析出来的
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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