308 lines
11 KiB
Markdown
308 lines
11 KiB
Markdown
# 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 版本**: 完整版
|
||
|