Android システムは「デバイスの内部に問題があります。詳細についてはデバイスの製造元にお問い合わせください」ポップアップ ウィンドウをブロックします。

問題の症状:

Android システムのマシンを使用しているときに、「デバイスの内部に問題があります。詳細についてはデバイスの製造元にお問い合わせください。」というデスクトップがポップアップ表示されることがあるとお客様から報告されています。実際にはマシンの使用には問題ありませんが、このインターフェイスは突然表示されます。これはユーザー エクスペリエンスに大きな影響を与えるため、使用中にこのポップアップ ウィンドウが表示されないように Android ソース コードのこのセクションをブロックする必要があります。


アンドロイド5.1~9.0

ポップアップ ウィンドウを表示するスレッドをコメントします。
frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java,keyword SHOW_FINGERPRINT_ERROR_UI_MSG

diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 6d87e940b6b..69a138f72bd 100755
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -13643,7 +13643,7 @@ public final class ActivityManagerService extends ActivityManagerNative

             if (!Build.isBuildConsistent()) {
    
    
                 Slog.e(TAG, "Build fingerprint is not consistent, warning user");
-                mUiHandler.obtainMessage(SHOW_FINGERPRINT_ERROR_UI_MSG).sendToTarget();
+                //mUiHandler.obtainMessage(SHOW_FINGERPRINT_ERROR_UI_MSG).sendToTarget();
             }

             long ident = Binder.clearCallingIdentity();

Android11~12

警告ボックスが表示される理由は 2 つあります。

  1. ファームウェアが一致しません。システム、ブート、ベンダーの 3 つのフィンガープリントが矛盾しており、同じファームウェアのセットではありません。
  2. マシンは IO デバッグ機能をサポートする構成を開きます。コンパイル時に、このドキュメントで前述したカーネル コンパイル コマンドを使用して機能をオフにします。
  3. IO デバッグ機能を使用する必要があるプロジェクトの場合は、上記の 2 つの理由を無視して、frameworks/base次のパッチを直接組み込んでポップアップ ウィンドウを削除できます。
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 9b33b56e9f8f..a1c3d60dcaff 100755
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -6485,7 +6485,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
    
    
                 } catch (RemoteException e) {
    
    
                 }

-                if (!Build.isBuildConsistent()) {
    
    
+                if (0 && !Build.isBuildConsistent()) {
    
    
                     Slog.e(TAG, "Build fingerprint is not consistent, warning user");
                     mUiHandler.post(() -> {
    
    
                         if (mShowDialogs) {
    
    

おすすめ

転載: blog.csdn.net/weixin_45639314/article/details/132453404