Aosp13 手機sim卡信號格顯示修改

工作中,客戶要求對信號格顯示偏弱不夠友好為由,提出修改,要求使其顯示信號強一些。

在此記錄? ? ? ? ? ? ??

一問題:

修改系統sim卡顯示的信號格,在設備其他配置不變的情況下,使其信號格顯示比原有的要優秀

二 分析

我們在Framework/base 下找到控制信號格顯示的地方,修改閾值使其顯示變更

涉及類如下:

/frameworks/base/telephony/java/android/telephony/CellSignalStrengthNr.java

/frameworks/base/telephony/java/android/telephony/SignalStrength.java

1 確定當前信號格顯示的判斷依據:

PS C:\Users\86186> adb shell dumpsys carrier_config | findStr parameters_use_for_5g_nr_signal_bar_intparameters_use_for_5g_nr_signal_bar_int = 1parameters_use_for_5g_nr_signal_bar_int = 1

執行如上指令,返回值是1?

2 我們在CellSignalStrengthNr中發現如下:

/*** Indicates SSRSRP is considered for {@link #getLevel()} and reporting from modem.** @hide*/public static final int USE_SSRSRP = 1 << 0; //十進制 1/*** Indicates SSRSRQ is considered for {@link #getLevel()} and reporting from modem.** @hide*/public static final int USE_SSRSRQ = 1 << 1;//十進制 2/*** Indicates SSSINR is considered for {@link #getLevel()} and reporting from modem.** @hide*/public static final int USE_SSSINR = 1 << 2;//十進制 4

根據設備返回值是1,說明系統信號格使用的是SSRSRP屬性判斷

先解釋下 這三個屬性的意義

  • RSRP(Reference Signal Received Power,參考信號接收功率)

  • RSRQ(Reference Signal Received Quality,參考信號接收質量)

  • SINR(Signal to Interference plus Noise Ratio,信號干擾噪聲比)

3 那么系統是在哪里設置的呢,

/androidDev/android_source/POCft18/frameworks/base/telephony/java/android/telephony/CarrierConfigManager.java

..............
public static final class Bsf {
............
sDefaults.putIntArray(KEY_LTE_RSRP_THRESHOLDS_INT_ARRAY,new int[] {-128, /* SIGNAL_STRENGTH_POOR */-118, /* SIGNAL_STRENGTH_MODERATE */-108, /* SIGNAL_STRENGTH_GOOD */-98,  /* SIGNAL_STRENGTH_GREAT */});sDefaults.putIntArray(KEY_LTE_RSRQ_THRESHOLDS_INT_ARRAY,new int[] {-20, /* SIGNAL_STRENGTH_POOR */-17, /* SIGNAL_STRENGTH_MODERATE */-14, /* SIGNAL_STRENGTH_GOOD */-11  /* SIGNAL_STRENGTH_GREAT */});sDefaults.putIntArray(KEY_LTE_RSSNR_THRESHOLDS_INT_ARRAY,new int[] {-3, /* SIGNAL_STRENGTH_POOR */1,  /* SIGNAL_STRENGTH_MODERATE */5,  /* SIGNAL_STRENGTH_GOOD */13  /* SIGNAL_STRENGTH_GREAT */});sDefaults.putIntArray(KEY_WCDMA_RSCP_THRESHOLDS_INT_ARRAY,new int[] {-115,  /* SIGNAL_STRENGTH_POOR */-105, /* SIGNAL_STRENGTH_MODERATE */-95, /* SIGNAL_STRENGTH_GOOD */-85  /* SIGNAL_STRENGTH_GREAT */});sDefaults.putIntArray(KEY_5G_NR_SSRSRP_THRESHOLDS_INT_ARRAY,// Boundaries: [-140 dB, -44 dB]new int[] {-110, /* SIGNAL_STRENGTH_POOR */-90, /* SIGNAL_STRENGTH_MODERATE */-80, /* SIGNAL_STRENGTH_GOOD */-65,  /* SIGNAL_STRENGTH_GREAT */});sDefaults.putIntArray(KEY_5G_NR_SSRSRQ_THRESHOLDS_INT_ARRAY,// Boundaries: [-43 dB, 20 dB]new int[] {-31, /* SIGNAL_STRENGTH_POOR */-19, /* SIGNAL_STRENGTH_MODERATE */-7, /* SIGNAL_STRENGTH_GOOD */6  /* SIGNAL_STRENGTH_GREAT */});sDefaults.putIntArray(KEY_5G_NR_SSSINR_THRESHOLDS_INT_ARRAY,// Boundaries: [-23 dB, 40 dB]new int[] {-5, /* SIGNAL_STRENGTH_POOR */5, /* SIGNAL_STRENGTH_MODERATE */15, /* SIGNAL_STRENGTH_GOOD */30  /* SIGNAL_STRENGTH_GREAT */});sDefaults.putInt(KEY_PARAMETERS_USE_FOR_5G_NR_SIGNAL_BAR_INT,CellSignalStrengthNr.USE_SSRSRP);//5g信號控制類型設置
...........

三 方案:

/androidDev/android_source/POCft18/frameworks/base/telephony/java/android/telephony/CellSignalStrengthNr.java 下

。。。。。。。。。。。。。。。。
/** @hide */@Overridepublic void updateLevel(PersistableBundle cc, ServiceState ss) {if (cc == null) {mParametersUseForLevel = USE_SSRSRP;} else {mParametersUseForLevel = cc.getInt(CarrierConfigManager.KEY_PARAMETERS_USE_FOR_5G_NR_SIGNAL_BAR_INT, USE_SSRSRP);mSsRsrpThresholds = cc.getIntArray(CarrierConfigManager.KEY_5G_NR_SSRSRP_THRESHOLDS_INT_ARRAY);if (VDBG) {Rlog.i(TAG, "Applying 5G NR SSRSRP Thresholds: "+ Arrays.toString(mSsRsrpThresholds));}mSsRsrqThresholds = cc.getIntArray(CarrierConfigManager.KEY_5G_NR_SSRSRQ_THRESHOLDS_INT_ARRAY);if (VDBG) {Rlog.i(TAG, "Applying 5G NR SSRSRQ Thresholds: "+ Arrays.toString(mSsRsrqThresholds));}mSsSinrThresholds = cc.getIntArray(CarrierConfigManager.KEY_5G_NR_SSSINR_THRESHOLDS_INT_ARRAY);if (VDBG) {Rlog.i(TAG, "Applying 5G NR SSSINR Thresholds: "+ Arrays.toString(mSsSinrThresholds));}}int ssRsrpLevel = SignalStrength.INVALID;int ssRsrqLevel = SignalStrength.INVALID;int ssSinrLevel = SignalStrength.INVALID;if (isLevelForParameter(USE_SSRSRP)) {int rsrpBoost = 0;if (ss != null) {rsrpBoost = ss.getArfcnRsrpBoost();}ssRsrpLevel = updateLevelWithMeasure(mSsRsrp + rsrpBoost, mSsRsrpThresholds);if (VDBG) {Rlog.i(TAG, "Updated 5G NR SSRSRP Level: " + ssRsrpLevel);}}if (isLevelForParameter(USE_SSRSRQ)) {ssRsrqLevel = updateLevelWithMeasure(mSsRsrq, mSsRsrqThresholds);if (VDBG) {Rlog.i(TAG, "Updated 5G NR SSRSRQ Level: " + ssRsrqLevel);}}if (isLevelForParameter(USE_SSSINR)) {ssSinrLevel = updateLevelWithMeasure(mSsSinr, mSsSinrThresholds);if (VDBG) {Rlog.i(TAG, "Updated 5G NR SSSINR fff Level: " + ssSinrLevel);}}// Apply the smaller value among three levels of three measures.
-        // mLevel = Math.min(Math.min(ssRsrpLevel, ssRsrqLevel), ssSinrLevel);
+        int rsrpLevel;
+        if (mSsRsrp >= -98) {
+            rsrpLevel = SIGNAL_STRENGTH_GREAT;   // 滿格
+        } else if (mSsRsrp >= -108) {
+            rsrpLevel = SIGNAL_STRENGTH_GOOD;
+        } else if (mSsRsrp >= -118) {
+            rsrpLevel = SIGNAL_STRENGTH_MODERATE;
+        } else if (mSsRsrp >= -128) {
+            rsrpLevel = SIGNAL_STRENGTH_POOR;
+        } else {
+            rsrpLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
+        }
+        Rlog.i(TAG, "Updated 5G mSsRsrp: " + mSsRsrp + " ;rsrpLevel:" + rsrpLevel);
+        mLevel = rsrpLevel;}
。。。。。。。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/98925.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/98925.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/98925.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

硬件開發2-匯編2(ARMv7-A)- 裸機開發

一、指令1、b&#xff08;Branch&#xff09;原型&#xff1a;B<c> <label>作用&#xff1a;實現無條件跳轉&#xff0c;常用于不返回的跳轉場景特點&#xff1a;僅跳轉到目標地址&#xff0c;不保存返回地址示例&#xff1a;b reset ;跳轉到reset標號處執…

清源 SCA 社區版更新(V4.2.0)|漏洞前置感知、精準修復、合規清晰,筑牢軟件供應鏈安全防線!

隨著數字化進程加速&#xff0c;軟件供應鏈安全威脅日益復雜&#xff0c;公開漏洞響應滯后、0day 攻擊防不勝防、組件升級編譯失敗、安全與合規風險混雜......這些痛點讓企業安全團隊、運維人員及研發團隊疲于應對。自 2025 年 7 月 1 日安勢清源 SCA 社區版首次正式發布以及在…

氚燃料增殖里程碑:MIT新型BABY包層技術實驗驗證

● 導語 5月20日&#xff0c;麻省理工學院&#xff08;MIT&#xff09;發文稱&#xff0c;BABY實驗首次獲取了氚在裝置內增殖的實測數據&#xff0c;驗證了核心模型&#xff0c;并為未來核聚變電廠的燃料自循環奠定了重要基礎。 原文&#x1f447;&#x1f3fb; https://m…

python+springboot+uniapp微信小程序題庫系統 在線答題 題目分類 錯題本管理 學習記錄查詢系統

目錄技術棧介紹具體實現截圖系統設計研究方法&#xff1a;設計步驟設計流程核心代碼部分展示研究方法詳細視頻演示試驗方案論文大綱源碼獲取/詳細視頻演示技術棧介紹 Django-SpringBoot-php-Node.js-flask 本課題的研究方法和研究步驟基本合理&#xff0c;難度適中&#xff0…

Office轉PDF轉換器v1.0.py

軟件介紹 這是批量將word、Excel、PPT轉換為PDF格式的軟件&#xff0c;不過PPT轉換為PDF需要電腦安裝了office&#xff0c;目前這個我還沒有解決沒有office也可以安裝的方法。 軟件使用 軟件使用是比較簡單的&#xff0c;導入文件/文件夾&#xff0c;在自定義輸出路徑 點擊這…

62_基于深度學習的海洋垃圾檢測識別系統(yolo11、yolov8、yolov5+UI界面+Python項目源碼+模型+標注好的數據集)

目錄 項目介紹&#x1f3af; 功能展示&#x1f31f; 一、環境安裝&#x1f386; 環境配置說明&#x1f4d8; 安裝指南說明&#x1f3a5; 環境安裝教學視頻 &#x1f31f; 二、數據集介紹&#x1f31f; 三、系統環境&#xff08;框架/依賴庫&#xff09;說明&#x1f9f1; 系統環…

深入淺出 全面剖析消息隊列(Kafka,RabbitMQ,RocketMQ 等)

消息隊列 一、概念 消息隊列&#xff08;MQ&#xff09;&#xff1a;一種異步通信機制&#xff0c;通過“消息”的形式讓不同系統或模塊解耦核心思想&#xff1a;發送方&#xff08;生產者Producer&#xff09;只負責發送消息&#xff0c;接收方&#xff08;消費者Consumer&…

Flux Images Generation API 對接說明

本文將介紹一種 Flux Images Generation API 對接說明&#xff0c;它是可以通過輸入自定義參數來生成Flux官方的圖片。 接下來介紹下 Flux Images Generation API 的對接說明。 申請流程 要使用 API&#xff0c;需要先到 Flux Images Generation API 對應頁面申請對應的服務…

CSS布局 - 網格布局 -- 筆記3

目錄網格布局基礎網格網格剖析CSS 提供了一些控制網頁布局的幾個重要工具&#xff0c;這里介紹網格布局。 網格布局 CSS 網格可以定義由行和列組成的二維布局&#xff0c;然后將元素放置到網格中。有些元素可能只占據網格的一個單元&#xff0c;另一些元素則可能占據多行或多…

合約開發完后部署測試

一 編譯npx hardhat compile二 測試npx hardhat test三部署注意部署的時候2.0和3版本有所區別&#xff0c;3.0如下# 部署到本地網絡&#xff08;如已運行 npx hardhat node&#xff09; npx hardhat ignition deploy ./ignition/modules/MyModule.ts --network localhost# 部署…

產品無法正確解析復雜表格和流程圖,有什么替代方案或優化方法?

在真實辦公場景中&#xff0c;文檔內的元素往往不具備標準化和格式化特征&#xff0c;像雙欄表格、無線圖表等復雜元素十分常見。而傳統 OCR 工具在面對這類復雜文檔時&#xff0c;存在明顯的能力短板&#xff1a;它無法準確判斷復雜表格的結構邏輯以及內容的順序邏輯&#xff…

《Html模板》HTML數學題目生成器 - 讓數學練習更簡單(附源碼)

目錄專欄導讀&#x1f9ee; HTML數學題目生成器 - 讓數學練習更簡單項目簡介? 核心功能&#x1f3af; 靈活的運算類型選擇&#x1f4ca; 智能題目生成算法?? 個性化參數設置&#x1f5a8;? 專業打印優化&#x1f3a8; 用戶體驗設計現代化界面交互體驗&#x1f6e0;? 技術實…

Go語言設計模式(七)組合模式

組合模式是指將一組相似對象當做一個單一對象的設計模式.1.組成角色:1.1組件:組合中的對象聲明接口,主要用于訪問和管理其子組件.1.2葉子節點:定義組合中原始對象行為的類.葉子節點表示組合中的葉對象.1.3組合:又稱為容器,存儲子組件并在組件接口中實現與子組件有關的類.1.4客戶…

AI 3D 生成工具知識庫:當前產品格局與測評總結

聚焦于 AI 3D 生成領域的領軍產品、功能比較及實測性能。內容分為產品格局、通用功能、測評系統與基準測試&#xff0c;以及單視圖生成實測結果。所有信息基于腳本分析&#xff0c;并交叉驗證了產品名稱、團隊背景&#xff08;如 VAST AI 的 TripoSR/Meshy 的 Meshy-1、影眸科技…

淘客app的容器化部署與編排:基于Kubernetes的微服務架構實踐

淘客app的容器化部署與編排&#xff1a;基于Kubernetes的微服務架構實踐 大家好&#xff0c;我是阿可&#xff0c;微賺淘客系統及省賺客APP創始人&#xff0c;是個冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在淘客app的業務迭代中&#xff0c;傳統物理機部署面…

當GitHub不再純粹:Python自動化測試的未來是AI還是危機?

全球最大的開源代碼平臺&#xff0c;徹底被卷進了AI洪流&#xff01;作為全球最大的“程序員交友平臺”&#xff08;手動狗頭&#xff09;&#xff0c;GitHub 可以說是每一個開發者又愛又恨的“家”。沒錯&#xff0c;就是那個全球最大、沒有之一的開源代碼托管平臺&#xff01…

Spring Boot + MySQL 創建超級管理員

Spring Boot系統創建超管實現方式1. 數據庫腳本初始化&#xff08;最直接的方式&#xff09;2. Spring Boot 啟動時自動創建&#xff08;代碼級初始化&#xff09;2.1 實體類定義2.2 Repository 接口2.3 初始化組件2.4 配置密碼加密器3. 通過接口手動創建&#xff08;最安全的方…

楊輝三角**

一、題目給定一個非負整數 numRows&#xff0c;生成「楊輝三角」的前 numRows 行。在「楊輝三角」中&#xff0c;每個數是它左上方和右上方的數的和。示例 1:輸入: numRows 5 輸出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2:輸入: numRows 1 輸出: [[1]]提示:1 <…

Vue3 的單文件組件(.vue 文件)中,在 <script>、<template>、<style> 標簽外輸入內容不會導致程序報錯

在 <script>、<template>、<style> 標簽外首行誤輸入內容 vtsvts <script setup lang"ts" name"BaseDocxPreviewDialog"> /*** docx文件預覽模態框組件*/ defineOptions({ name: "BaseDocxPreviewDialog" }); import { …

LVS負載均衡群集和LVS+Keepalived群集

1、群集 1.1群集的含義 由多臺主機構成&#xff0c;但對外只表現為一個整體&#xff0c;只提供一個訪問入口&#xff08;域名與IP地址&#xff09;&#xff0c;相當于一臺大型計算機。 1.2 企業群集分類 負載均衡群集&#xff1a;提高應用系統的響應能力、盡可能處理更多的…