android11 userdebug版本添加工程样机标识

--------- alps/frameworks/base/core/res/res/layout/gongchengyangji.xml ---------
new file mode 100644
index 0000000..735f139
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2006 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+  
+          http://www.apache.org/licenses/LICENSE-2.0
+  
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content" android:layout_height="wrap_content"
+    android:textAppearance="?android:attr/textAppearanceLarge"
+    android:gravity="center"
+    android:padding="3dp"
+    android:background="@drawable/safe_mode_background"
+    android:textColor="@color/safe_mode_text"
+    android:text="@string/gongchengyangji"
+/>

--------- alps/frameworks/base/core/res/res/values-zh-rCN/strings.xml ---------
index 996fe61..a04229e 100644
@@ -290,6 +290,7 @@
     <string name="foreground_service_tap_for_details" msgid="9078123626015586751">"点按即可详细了解电量和流量消耗情况"</string>
     <string name="foreground_service_multiple_separator" msgid="5002287361849863168">"<xliff:g id="LEFT_SIDE">%1$s</xliff:g>、<xliff:g id="RIGHT_SIDE">%2$s</xliff:g>"</string>
     <string name="safeMode" msgid="8974401416068943888">"安全模式"</string>
+    <string name="gongchengyangji" >工程样机</string>
     <string name="android_system_label" msgid="5974767339591067210">"Android 系统"</string>
     <string name="user_owner_label" msgid="8628726904184471211">"切换到个人资料"</string>
     <string name="managed_profile_label" msgid="7316778766973512382">"切换到工作资料"</string>

------------- alps/frameworks/base/core/res/res/values/strings.xml -------------
index 4648de5..c05dce8 100644
@@ -738,7 +738,7 @@
 
     <!-- Displayed to the user to tell them that they have started up the phone in "safe mode" -->
     <string name="safeMode">Safe mode</string>
-
+    <string name="gongchengyangji" >工程样机</string>
     <!-- Label for the Android system components when they are shown to the user. -->
     <string name="android_system_label">Android System</string>
 

------------- alps/frameworks/base/core/res/res/values/symbols.xml -------------
index 638c232..cdab22c 100644
@@ -1998,6 +1998,7 @@
   <java-symbol type="layout" name="am_compat_mode_dialog" />
   <java-symbol type="layout" name="launch_warning" />
   <java-symbol type="layout" name="safe_mode" />
+  <java-symbol type="layout" name="gongchengyangji" />
   <java-symbol type="layout" name="simple_list_item_2_single_choice" />
   <java-symbol type="layout" name="app_error_dialog" />
   <java-symbol type="string" name="accessibility_binding_label" />

 alps/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 
index eaceb77..a5f22d4 100644
@@ -9168,7 +9168,22 @@ public class ActivityManagerService extends IActivityManager.Stub
         ((WindowManager)mContext.getSystemService(
                 Context.WINDOW_SERVICE)).addView(v, lp);
     }
-
+    // 显示工程样机
+    public final void showGongchengyanjiOverlay() {
+        View v = LayoutInflater.from(mContext).inflate(
+                com.android.internal.R.layout.gongchengyangji, null);
+        WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
+        lp.type = WindowManager.LayoutParams.TYPE_SECURE_SYSTEM_OVERLAY;
+        lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
+        lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
+        lp.gravity = Gravity.BOTTOM | Gravity.START;
+        lp.format = v.getBackground().getOpacity();
+        lp.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
+                | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
+        lp.privateFlags |= WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS;
+        ((WindowManager)mContext.getSystemService(
+                Context.WINDOW_SERVICE)).addView(v, lp);
+    }
     @Override
     public void noteWakeupAlarm(IIntentSender sender, WorkSource workSource, int sourceUid,
             String sourcePkg, String tag) {

--- alps/frameworks/base/services/java/com/android/server/SystemServer.java ---
index f84a617..243c015 100644
@@ -2199,9 +2199,11 @@ public final class SystemServer {
                 sPendingWtfs = null;
             }
         }
-
+		boolean isuserdebug = "userdebug".equals(Build.TYPE);
         if (safeMode) {
             mActivityManagerService.showSafeModeOverlay();
+        }else if(isuserdebug){
+            mActivityManagerService.showGongchengyanjiOverlay();
         }
 
         // Update the configuration for this context by hand, because we're going

猜你喜欢

转载自blog.csdn.net/lwz622/article/details/118851568