LinearTeam
LinearTeam

【全网首发】如何修复 GSI 中的常见问题及 CB-C6s-STU GSI 修复包

前言

当你费劲千辛万苦终于成功启动 GSI 的时候,你会发现这东西居然亮度调节、蓝牙甚至屏幕旋转都不正常,心态瞬间就崩了。。

但好在你找到了这篇文章,就不算太糟,这些其实都有方法解决!

已知问题

系统属性:

  • 缺少平板特征声明
  • 亮度范围错误
  • 蓝牙 A2DP offload 异常

HAL层:

  • Sensors HAL 中对 Device Orientation Sensor 的值处理和 GSI Framework 不兼容

如何修复系统属性领域的问题

非常简单,只需要在 vendorbuild.prop 修改(如没有则追加):

# 平板特性
ro.build.characteristics=tablet

# 解决:将 sprd_backlight 最大亮度设为 1023
persist.sys.qcom-brightness=1023


# 解决:禁用蓝牙 A2DP offload
persist.bluetooth.a2dp_offload.disabled=true

如何修复其它领域的问题

本文所讨论的屏幕方向传感器是 Android 的 设备方向(Device Orientation) 传感器:

在 Unisoc/SPRD 的 sensor HAL 中,该传感器由 sensorhub HAL 负责处理。数据通常在如下代码中生成:

  • SensorHubInputSensor::processTypeAEvent()
  • SensorHubInputSensor::processTypeBEvent()
  • SensorHubInputSensor::readEvents()

我们需要修改以下内容:

找到为设备方向传感器填充 sensors_event_t 的位置,并添加如下代码:

```cpp
if (event.type == SENSOR_TYPE_DEVICE_ORIENTATION) {
    int value = static_cast<int>(event.data[0]);
    event.data[0] = static_cast<float>((value + 1) % 4);
}
```

或者,如果代码是通过 handle(句柄)来识别该传感器的:

```cpp
if (sensorHandle == DEVICE_ORIENTATION_HANDLE) {
    int value = static_cast<int>(event.data[0]);
    event.data[0] = static_cast<float>((value + 1) % 4);
}
```

其映射关系如下:

```text
0 -> 1
1 -> 2
2 -> 3
3 -> 0
```

也就是“加 1 再对 4 取模”。

但是我们没有原厂的 HAL 层源码,所以我们可以通过对平板中已编译好的二进制文件进行修改,考虑到难度系数较大,我在 Evarentha 的 Github 上开源了我的设备(CB-C6s-STU)的 GSI 修复包:https://github.com/Evarentha/iflytekcb-iclass-c6s-gsi-fix.

使用方法:

  1. 下载 Release 中的修复包
  2. CB-C6s-STU-GSI-Fixes.zip 复制到设备(sdcard 或 adb push)。
  3. 使用 Magisk 刷写模块或者使用 Magisk 管理器安装模块。
  4. 重启设备。

注意事项:

  • 本修复包的兼容性验证范围仅限于 CB-C6s-STU 设备。其他型号设备未经测试,使用前请进行充分的风险评估。

没有标签
首页      未分类      【全网首发】如何修复 GSI 中的常见问题及 CB-C6s-STU GSI 修复包
Avatar photo

Dr. TeaBread

文章作者

发表回复

textsms
account_circle
email

LinearTeam

【全网首发】如何修复 GSI 中的常见问题及 CB-C6s-STU GSI 修复包
前言 当你费劲千辛万苦终于成功启动 GSI 的时候,你会发现这东西居然亮度调节、蓝牙甚至屏幕旋转都不正常,心态瞬间就崩了。。 但好在你找到了这篇文章,就不算太糟,这些其实都有…
扫描二维码继续阅读
2026-07-11