# TV 定制版 基于 FongMi TV 的 Android 影音应用,提供电视端(Leanback)和手机端(Mobile)两套界面,支持点播、直播以及外部配置。 ## 定制内容 - 取消应用启动时的自动更新检测。 - 首页根据配置动态显示入口: - 未配置点播:显示“直播、设置”。 - 已配置点播:显示“点播、直播、设置”。 - 设置页增加“启动时进入直播”选项。 - 该选项首次安装默认开启,之后会记住用户选择。 - 启动直播状态采用与“无痕模式”一致的“开/关”文字显示。 - 预设直播配置;该地址也可以手动填写到点播配置: ```text http://iptv.373720560.xyz/qwer1234 ``` ## 项目信息 | 项目 | 内容 | | --- | --- | | 包名 | `com.fongmi.android.tv` | | 版本 | `5.4.1` | | 编译 SDK | API 37 | | 目标 SDK | API 28 | | 标准版最低系统 | Android 7.0(API 24) | | 老电视兼容版 | Android 6.0(API 23) | | CPU 架构 | `arm64-v8a`、`armeabi-v7a` | | 界面版本 | `leanback`、`mobile` | ## 版本选择 ### 界面 - `leanback`:电视、电视盒子,适合遥控器操作。 - `mobile`:手机和平板,适合触摸操作。 ### CPU 架构 - `arm64-v8a`:大多数较新的 64 位设备。 - `armeabi-v7a`:32 位设备及部分只提供 32 位运行环境的老电视。 CPU 是 64 位不代表系统一定支持 64 位应用。部分老电视应优先尝试 `armeabi-v7a`。 ### 老电视兼容包 Android 6.0 电视可使用: ```text Release/apk/leanback-armeabi_v7a-android6-debug.apk ``` 该版本具有以下特点: - 最低支持 Android 6.0(API 23)。 - 使用 `armeabi-v7a` 架构。 - 同时包含 v1 和 v2 APK 签名。 - 不包含 Chaquopy Python 引擎,因此 Python 类型的点播源不可用。 - Java、CSP、QuickJS、普通 HTTP/HLS 点播与直播不受影响。 Android 5.x 及更低版本暂不支持。 ## 配置行为 ### 点播 点播配置 URL 非空时,首页会自动出现“点播”入口。删除点播配置后,该入口自动隐藏。 配置支持 `sites`、`parses`、`lives`、`doh`、`proxy`、`hosts`、`ads` 等字段。 ### 直播 支持常见的 JSON、M3U 和 TXT 直播源,包含频道分组、EPG、收藏等功能。 ### 启动进入直播 路径: ```text 设置 -> 启动时进入直播 ``` 状态为“开”时,配置加载完成后会自动进入直播;状态为“关”时停留在首页。 ## 本地构建 ### 环境要求 - macOS、Linux 或 Windows - JDK 21 - Android SDK Platform 37 - Android Build Tools 在项目根目录创建 `local.properties`: ```properties sdk.dir=/你的/Android/Sdk/路径 ``` 项目中的 `gradlew` 可能没有执行权限,可直接使用 `bash gradlew`。 ### 构建调试包 电视 ARM64: ```bash bash gradlew assembleLeanbackArm64_v8aDebug --no-build-cache ``` 电视 32 位: ```bash bash gradlew assembleLeanbackArmeabi_v7aDebug --no-build-cache ``` 手机 ARM64: ```bash bash gradlew assembleMobileArm64_v8aDebug --no-build-cache ``` 手机 32 位: ```bash bash gradlew assembleMobileArmeabi_v7aDebug --no-build-cache ``` ### 构建 Android 6 老电视包 ```bash bash gradlew assembleLeanbackArmeabi_v7aDebug \ -Plegacy=true \ --no-build-cache ``` 输出目录: ```text app/build/outputs/apk/ ``` ### 构建 Release 包 ```bash bash gradlew assembleLeanbackArm64_v8aRelease --no-build-cache bash gradlew assembleLeanbackArmeabi_v7aRelease --no-build-cache ``` Release 构建完成后,APK 会复制到: ```text Release/apk/ ``` 如果 `local.properties` 没有提供正式签名信息,Release 包会使用调试签名。 正式签名配置示例: ```properties storeFile=/绝对路径/release.jks keyAlias=你的别名 storePassword=你的密码 ``` ## ADB 安装 查看设备: ```bash adb devices ``` 覆盖安装并保留数据: ```bash adb install -r 你的安装包.apk ``` 如果提示签名不一致,需要先卸载旧版本: ```bash adb uninstall com.fongmi.android.tv adb install 你的安装包.apk ``` 卸载会清除应用配置和观看记录。 ## 常见问题 ### 安装包无法解析 常见原因: 1. 电视系统低于 APK 的最低 Android 版本。 2. APK 架构与电视运行环境不一致。 3. 老系统不支持仅使用 v2 签名的 APK。 4. 下载或复制过程中 APK 文件损坏。 Android 6 老电视优先使用老电视兼容包。 ### 提示应用未安装 通常是已安装版本与新 APK 的签名不同。卸载旧版本后重新安装。 ### 配置了点播但首页没有入口 确认地址填写在“点播配置”而不是“直播配置”。配置保存后,首页会自动刷新并显示“点播”。 ### 设置页崩溃 本定制版已经移除存在兼容问题的 `MaterialSwitch`,改为与“无痕模式”一致的文字状态显示。 ## 目录结构 ```text TV/ ├── app/ 主应用 │ └── src/ │ ├── main/ 公共业务逻辑 │ ├── leanback/ 电视界面 │ ├── mobile/ 手机界面 │ └── legacy/ Android 6 兼容代码 ├── catvod/ Spider 与网络基础模块 ├── chaquo/ Python 引擎 ├── quickjs/ JavaScript 引擎 ├── docs/ 配置及接口文档 └── Release/apk/ Release 和兼容 APK ``` ## 相关文档 | 文档 | 内容 | | --- | --- | | [CONFIG.md](docs/CONFIG.md) | 点播及直播配置格式 | | [LIVE.md](docs/LIVE.md) | 直播源格式 | | [SPIDER.md](docs/SPIDER.md) | Spider 接口 | | [LOCAL.md](docs/LOCAL.md) | 本地 HTTP API | ## 说明 本项目仅提供播放器及配置加载能力。请确保使用的内容源具有合法授权,并遵守所在地区的法律法规。