DevCheck-lib/BuildInfo数据库字段对应关系.md
2025-12-24 14:16:27 +08:00

308 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# BuildInfo 与数据库字段对应关系
## 数据库表 `phone.build` 字段映射
### ✅ 已完全实现的字段
| 数据库字段 | BuildInfo 属性 | Android API | 说明 |
|-----------|---------------|-------------|------|
| brand | `brand` | `Build.BRAND` | 品牌 |
| model | `model` | `Build.MODEL` | 机型 |
| product | `product` | `Build.PRODUCT` | 产品名称 (如 x1seea) |
| sdkInt | `versionSdkInt` | `Build.VERSION.SDK_INT` | SDK 版本 |
| androidVersion | `versionRelease` | `Build.VERSION.RELEASE` | Android 版本 |
| buildId | `id` | `Build.ID` | 构建 ID (如 AP3A.240905.015.A2) |
| bootloader | `bootloaderVersion` | `Build.BOOTLOADER` | Bootloader 版本 |
| display | `display` | `Build.DISPLAY` | 显示 ID |
| buildUser | `user` | `Build.USER` | 构建用户 |
| incremental | `incremental` | `Build.VERSION.INCREMENTAL` | 增量版本 |
| buildHost | `host` | `Build.HOST` | 构建主机 |
| buildFingerprint | `fingerprint` | `Build.FINGERPRINT` | 构建指纹 |
| kernelVersion | `kernelVersion` | `System.getProperty("os.version")` | 内核版本 |
| securityPatch | `securityPatch` | `Build.VERSION.SECURITY_PATCH` | 安全补丁日期 |
| releaseDate | `buildDate` | `Build.TIME` | 构建时间 |
### ✅ 新增的字段(三星设备特定)
| 数据库字段 | BuildInfo 属性 | 系统属性 | 说明 |
|-----------|---------------|---------|------|
| rilProductCode | `rilProductCode` | `ro.ril.product_code` | RIL 产品代码 |
| rilOfficialCscver | `rilOfficialCscver` | `ro.ril.official_cscver` | RIL 官方 CSC 版本 |
| cscSalesCode | `cscSalesCode` | `ro.csc.sales_code` | CSC 销售代码 |
| countryISO | `countryISO` | `ro.product.locale.region` | 国家/地区 ISO 代码 |
### 📝 需要在应用层处理的字段
| 数据库字段 | 说明 | 建议获取方式 |
|-----------|------|-------------|
| buildIdGD | 人工生成的构建 ID | 应用层生成 |
| incrementalGD | 人工生成的增量版本 | 应用层生成 |
| isManual | 是否人工录入 | 应用层标记 |
| sourceId | 数据源 ID | 应用层管理 |
| sourceTable | 数据源表 | 应用层管理 |
| updatedOn | 更新时间 | 数据库自动生成 |
| dataStatus | 数据状态 (1为准确可用) | 应用层管理 |
---
## 数据库表 `phone.hardware_new` 字段映射
### ✅ 已完全实现的字段
| 数据库字段 | BuildInfo/其他模块 属性 | Android API | 说明 |
|-----------|----------------------|-------------|------|
| brand | `brand` | `Build.BRAND` | 品牌 |
| model | `model` | `Build.MODEL` | 设备型号 |
| device | `device` | `Build.DEVICE` | 设备代号 |
| board | `board` | `Build.BOARD` | 主板名称 |
| manufacturer | `manufacturer` | `Build.MANUFACTURER` | 制造商 |
| hardware | `hardware` | `Build.HARDWARE` | 硬件标识 |
| formFactor | `formFactor` | 复合判断 | 设备类型 (Phone/Tablet) |
| linuxArchitecture | `kernelArchitecture` | `System.getProperty("os.arch")` | Linux 架构 |
### ⚠️ 部分实现或需要其他模块的字段
| 数据库字段 | 对应模块 | 说明 |
|-----------|---------|------|
| marketingName | ❌ 未实现 | 需要从设备数据库或 API 获取 |
| shortName | ❌ 未实现 | 需要从 marketingName 处理生成 |
| systemonChip | ⚠️ CpuInfo | 需要从 CPU 信息推导 SoC 名称 |
| screenSize | ⚠️ DisplayInfo | 屏幕尺寸(英寸) |
| screenSizecm | ⚠️ DisplayInfo | 屏幕尺寸(平方厘米) |
| maxWidthPixels | ⚠️ DisplayInfo | 最大宽度像素 |
| maxHeightPixels | ⚠️ DisplayInfo | 最大高度像素 |
| dpi | ⚠️ DisplayInfo | 物理 DPI |
| maxRefreshRate | ⚠️ DisplayInfo | 最大刷新率 |
| ramType | ⚠️ MemInfo | RAM 类型 (LPDDR5 等) |
| totalMemoryGB | ⚠️ DeviceInfo/MemInfo | 总内存 |
| totalStorageGB | ⚠️ StorageInfo | 总存储空间 |
| supportEsim | ⚠️ NetworkInfo | 是否支持 eSIM |
| simSlotCount | ⚠️ NetworkInfo | SIM 卡槽数量 |
| batteryDesignCapacity | ⚠️ BatteryInfo | 电池设计容量 |
| batteryWirelessSupported | ⚠️ BatteryInfo | 是否支持无线充电 |
| cellularGen | ⚠️ NetworkInfo | 最大网络类型 (3G/4G/5G) |
| maxWifiVersion | ⚠️ NetworkInfo | 最大 Wi-Fi 版本 |
| bluetoothVersion | ⚠️ BluetoothInfo | 蓝牙版本 |
| hasNFC | ⚠️ 未实现 | 是否支持 NFC |
### 📝 需要外部数据或人工处理的字段
| 数据库字段 | 说明 | 建议获取方式 |
|-----------|------|-------------|
| boardGD | 人工生成的主板名称 | 应用层生成 |
| hardwareGD | 人工生成的硬件标识 | 应用层生成 |
| isFold | 是否折叠机 | 需要外部数据库或规则判断 |
| releasedDate | 产品发布时间 | 需要外部数据库 |
| weight | 设备重量 | 需要外部数据库 |
| releasedAndroidVersion | 发布时 Android 版本 | 需要外部数据库 |
| supportAndroidMaxVersion | 最大支持 Android 版本 | 需要外部数据库 |
| price | 价格(美元) | 需要外部数据库 |
| sourceId | 数据源 ID | 应用层管理 |
| updatedOn | 更新时间 | 数据库自动生成 |
---
## 📋 BuildInfo.kt 已实现的完整字段列表
### 基本构建信息
-`fingerprint` - 构建指纹
-`brand` - 品牌
-`model` - 机型
-`product` - 产品名称
-`device` - 设备代号
-`board` - 主板名称
-`manufacturer` - 制造商
-`hardware` - 硬件标识
-`tags` - 构建标签
-`type` - 构建类型
-`buildDate` - 构建日期
-`host` - 构建主机
-`user` - 构建用户
-`id` - 构建 ID
-`display` - 显示 ID
### Android 版本信息
-`versionRelease` - Android 版本号
-`versionCodename` - 版本代号
-`versionSdkInt` - SDK 版本
-`versionPreviewSdkInt` - 预览版 SDK
-`securityPatch` - 安全补丁级别
-`baseOs` - 基础操作系统
-`incremental` - 增量版本
-`releaseOrCodename` - 版本号或代号
-`mediaPerformanceClass` - 媒体性能等级
-`releaseOrPreviewDisplay` - 版本显示字符串
### RIL 和 CSC 信息(三星设备)
-`rilProductCode` - RIL 产品代码
-`rilOfficialCscver` - RIL 官方 CSC 版本
-`cscSalesCode` - CSC 销售代码
-`countryISO` - 国家/地区 ISO 代码
### 设备类型
-`formFactor` - 设备类型 (Phone/Tablet)
-`isTablet` - 是否为平板
-`isPhone` - 是否为手机
### JVM 信息
-`jvmName` - JVM 名称
-`jvmVendor` - JVM 供应商
-`jvmVersion` - JVM 版本
-`jvmClassVersion` - Java 类版本
-`jvmSpecificationName` - Java 规范名称
-`jvmSpecificationVendor` - Java 规范供应商
-`jvmSpecificationVersion` - Java 规范版本
### 安全与内核信息
-`vendorSecurityPatchLevel` - 厂商安全补丁
-`kernelVersion` - 内核版本号
-`kernelCompleteVersion` - 完整内核版本
-`kernelArchitecture` - 内核架构
-`kernelName` - 内核名称
-`kernelCommandLine` - 内核命令行
-`bootloaderVersion` - Bootloader 版本
-`radioVersion` - 基带版本
-`procCpuInfo` - CPU 信息
-`procMemInfo` - 内存信息
### 分区信息
-`fingerprintedPartitions` - 指纹分区列表
### Treble 和系统更新
-`isTrebleEnabled` - Treble 支持
-`trebleVersion` - Treble 版本
-`isSeamlessUpdateSupported` - 无缝更新支持
-`currentSlot` - 当前活动插槽
-`isVirtualABEnabled` - 虚拟 A/B 支持
### Root 和安全
-`isRooted` - Root 状态
-`seLinuxStatus` - SELinux 状态
-`isDmVerityEnabled` - dm-verity 状态
### Google Play 服务
-`googlePlayServicesVersion` - Play 服务版本
-`googlePlayServicesVersionCode` - Play 服务版本代码
-`googlePlayStoreVersion` - Play 商店版本
-`googleServicesFrameworkVersion` - GSF 版本
### 系统工具
-`toyboxVersion` - Toybox 版本
-`toolboxVersion` - Toolbox 版本
-`busyboxVersion` - BusyBox 版本
### SSL/TLS
-`openSslVersion` - OpenSSL 版本
-`boringSslVersion` - BoringSSL 版本
-`tlsVersion` - TLS 版本
### 语言和时区
-`systemLanguage` - 系统语言
-`languageCode` - 语言代码
-`country` - 国家/地区
-`countryCode` - 国家/地区代码
-`timeZone` - 系统时区
-`timeZoneDisplayName` - 时区显示名称
-`timeZoneOffset` - UTC 偏移
### 开发者选项
-`isUsbDebuggingEnabled` - USB 调试
-`isDevelopmentSettingsEnabled` - 开发者选项
-`isUnknownSourcesEnabled` - 未知来源安装
### 设备标识符
-`androidId` - Android ID
-`serialNumber` - 序列号
-`deviceUniqueId` - 设备唯一 ID
---
## 🔍 缺失字段总结
### phone.build 表
**完全实现**: ✅ 15/15 个核心字段
**新增三星专用字段**: ✅ 4/4 个
**需应用层处理**: 7 个buildIdGD, incrementalGD, isManual 等)
### phone.hardware_new 表
**完全实现**: ✅ 8/8 个基本字段
**需其他模块**: ⚠️ 16 个DisplayInfo, NetworkInfo, BatteryInfo 等)
**需外部数据**: ❌ 10 个marketingName, releasedDate, price 等)
---
## 📊 使用示例
### 获取 build 表所需数据
```kotlin
val buildInfo = AndInfo.instance.build
val buildData = mapOf(
"brand" to buildInfo.brand,
"model" to buildInfo.model,
"product" to buildInfo.product,
"sdkInt" to buildInfo.versionSdkInt,
"androidVersion" to buildInfo.versionRelease,
"buildId" to buildInfo.id,
"bootloader" to buildInfo.bootloaderVersion,
"display" to buildInfo.display,
"buildUser" to buildInfo.user,
"incremental" to buildInfo.incremental,
"buildHost" to buildInfo.host,
"buildFingerprint" to buildInfo.fingerprint,
"rilProductCode" to buildInfo.rilProductCode,
"rilOfficialCscver" to buildInfo.rilOfficialCscver,
"cscSalesCode" to buildInfo.cscSalesCode,
"countryISO" to buildInfo.countryISO,
"kernelVersion" to buildInfo.kernelVersion,
"securityPatch" to buildInfo.securityPatch,
"releaseDate" to buildInfo.buildDate
)
```
### 获取 hardware_new 表基本字段
```kotlin
val buildInfo = AndInfo.instance.build
val hardwareData = mapOf(
"brand" to buildInfo.brand,
"model" to buildInfo.model,
"formFactor" to buildInfo.formFactor,
"device" to buildInfo.device,
"board" to buildInfo.board,
"manufacturer" to buildInfo.manufacturer,
"hardware" to buildInfo.hardware,
"linuxArchitecture" to buildInfo.kernelArchitecture
)
```
---
## ✅ 总结
### BuildInfo.kt 已实现
-**phone.build 表**: 15/15 核心字段 + 4 个三星专用字段
-**phone.hardware_new 表**: 8/8 基本字段
-**额外功能**: 60+ 个系统信息属性
### 需要其他模块支持
- DisplayInfo: 屏幕相关字段
- NetworkInfo: 网络和 SIM 卡相关字段
- BatteryInfo: 电池相关字段
- StorageInfo: 存储相关字段
- BluetoothInfo: 蓝牙相关字段
- MemInfo: 内存类型相关字段
### 需要外部数据源
- marketingName市场名称
- releasedDate发布日期
- price价格
- weight重量
- 等规格参数需要从产品数据库获取
---
**最后更新**: 2025年12月24日
**BuildInfo.kt 版本**: 完整版