Android16在开机向导最后添加一个声明界面

最近有一个项目,客户要求在开机向导最后添加一个类似监管授权的界面,然后点击该界面里的【同意】按钮后再进入到桌面。但是这个需求一般也会同样要求在Settings里的【关于平板】界面也添加一个这样功能菜单,点击这个菜单进入到监管授权界面,只不过这里面的界面没有【同意】按钮,所以实现这个需求时要先实现Settings的功能,然后再去实现开机向导里的,为什么要按这样的步骤?原因是实现开机向导那里的需求需要提前先实现在Settings里的需求,互相有点依赖。具体修改方法步骤和修改内容如下:

  1. 在Settings里的【关于平板】界面最后添加进入到监管授权界面的功能菜单,修改如下:
java 复制代码
commit 2138c9aec297a97ddf363aebdc222479ccec5cf9
Author: incar <chs@incartech.cn>
Date:   Fri Apr 24 10:36:01 2026 +0800

    在【关于平板】界面里添加【Privacy Policy】菜单条目
    
    Change-Id: I83026f9810710ff2a5eed784ccc320d8f1b2ffb7

diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 9e638f3ed13..e4f5a4c3d87 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -5736,5 +5736,15 @@
             android:theme="@style/Theme.Settings.NoActionBar"
             android:exported="true">
         </activity>
+
+        <activity
+            android:name=".deviceinfo.privacy.PrivacyActivity"
+            android:theme="@style/Theme.Settings.NoActionBar"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="com.incar.ACTION_JP_PRIVACY"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
+        </activity>		
     </application>
 </manifest>
diff --git a/res/drawable/rounded_button_privacy.xml b/res/drawable/rounded_button_privacy.xml
new file mode 100755
index 00000000000..747837edc65
--- /dev/null
+++ b/res/drawable/rounded_button_privacy.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item>
+        <shape android:shape="rectangle">
+            <corners android:radius="20dp" />
+            <solid android:color="#24a0ed" />
+            <stroke android:width="2dp" android:color="#24a0ed" />
+        </shape>
+    </item>
+</selector>
\ No newline at end of file
diff --git a/res/layout/privacy_information.xml b/res/layout/privacy_information.xml
new file mode 100755
index 00000000000..5c53dec10bc
--- /dev/null
+++ b/res/layout/privacy_information.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="horizontal">
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginLeft="3.5dp"
+        android:layout_marginTop="40dp"
+        android:layout_marginRight="3.5dp"
+        android:layout_marginBottom="6dp"
+		android:paddingBottom="40dp"
+        android:background="@color/accessibility_text_reading_background">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+
+			<TextView
+                android:id="@+id/privacy_title"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:layout_marginLeft="10sp"
+                android:ellipsize="end"
+                android:lineSpacingExtra="8dp"
+				android:textSize="30sp"
+                android:textStyle="bold"
+                />
+			
+            <TextView
+                android:id="@+id/privacy_text"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:layout_marginLeft="10sp"
+                android:ellipsize="end"
+                android:lineSpacingExtra="8dp"
+                />
+
+            <Button
+                android:id="@+id/privacy_button"
+                android:layout_width="80dp"
+                android:layout_height="45dp"
+                android:layout_gravity="bottom|right"
+				android:textColor="@color/accessibility_text_reading_background"
+                android:layout_marginRight="40dp"
+				android:layout_marginBottom="5dp"
+				android:background="@drawable/rounded_button_privacy"
+                android:text="@string/legal_terms_finish" />
+        </LinearLayout>
+
+
+    </ScrollView>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 056adedec0a..fe5136baf10 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -5762,4 +5762,6 @@
     <string name="supervision_full_screen_pin_verification_title" msgid="78513043528333399">"管理機能用の PIN を入力"</string>
     <string name="accessibility_illustration_content_description" msgid="557376174860150903">"<xliff:g id="FEATURE">%1$s</xliff:g> のアニメーション"</string>
     <string name="regulatory_title">"規制及び安全性"</string>
+    <string name="legal_terms">"利用規約及び情報の取扱いについて"</string>
+    <string name="legal_terms_finish">"同意"</string>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 559561a9404..dc6d05fedc5 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -14449,4 +14449,6 @@ Data usage charges may apply.</string>
     <!-- ==========rk code end========== -->
 
     <string name="regulatory_title">"Regulatory &amp; Safety"</string>
+    <string name="legal_terms">"Privacy Policy"</string>
+    <string name="legal_terms_finish">"AGREE"</string>
 </resources>
diff --git a/res/xml/my_device_info.xml b/res/xml/my_device_info.xml
index 650022e9b12..2a0ab05680d 100644
--- a/res/xml/my_device_info.xml
+++ b/res/xml/my_device_info.xml
@@ -245,4 +245,12 @@
             settings:controller="com.android.settings.deviceinfo.BuildNumberPreferenceController"/>
     </PreferenceCategory>
 
+    <Preference
+        android:key="legal_terms"
+        android:title="@string/legal_terms">
+        <intent
+            android:targetClass="com.android.settings.deviceinfo.privacy.PrivacyActivity"
+            android:targetPackage="com.android.settings"/>
+    </Preference>
+
 </PreferenceScreen>
diff --git a/src/com/android/settings/deviceinfo/privacy/PrivacyActivity.java b/src/com/android/settings/deviceinfo/privacy/PrivacyActivity.java
new file mode 100755
index 00000000000..13eb039e4e6
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/privacy/PrivacyActivity.java
@@ -0,0 +1,196 @@
+package com.android.settings.deviceinfo.privacy;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.annotation.SuppressLint;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+import android.util.Log;
+import com.android.settings.R;
+import com.google.android.setupcompat.util.WizardManagerHelper;
+import android.content.ActivityNotFoundException;
+
+import android.provider.Settings;
+
+public class PrivacyActivity extends Activity {
+
+    private TextView mText, mTitle;
+	private Button mButton;
+	private boolean provisioned;
+
+    @SuppressLint("MissingInflatedId")
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.privacy_information);
+        mText = findViewById(R.id.privacy_text);
+		mTitle = findViewById(R.id.privacy_title);
+		
+		provisioned = Settings.Global.getInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 0) == 1;
+		
+		String title = "利用規約及び情報の取扱いについて\n";
+        String content = 
+                "この「利用規約及び情報の取扱いについて」(以下「本規約」)は、 お客様が、このタブレ" +
+                "ット(以下、「本製品」といいます。)を利用するに当たり、本製品を通じてお客様に提供さ" +
+                "れるコンテンツ及びサービス(以下、総称して「本サービス」といいます。)に関する利用" +
+                "条件、利用方法、及びお客様から取得される情報とその取扱い等を定めたものです。なお、" +
+                "お客様が本製品の利用を開始した場合、お客様は、本規約に同意いただいたものとみなしま" +
+                "す。\n\n" +
+                "1. 端末データの収集について\n" +
+                "弊社、及びアプリケーションや本製品を利用した各種サービスのプロバイダー(以下、" +
+                "これらのプロバイダーを総称して「第三者プロバイダー」といいます。)は、ソフトウェ" +
+                "アアップデート、各種サービスの提供を容易にするために、このデバイス、システム及" +
+                "びアプリケーションソフトウェア、及び周辺機器に関する技術情報、技術データ、関連" +
+                "情報(以下、「取得情報」といいます。)を収集及び使用する場合があります。" +
+                "弊社、及び第三者プロバイダーは、本製品及びライセンスアプリケーションに関連する" +
+                "サポート及びその他のサービスのために、個人を特定しない形式である限り、そのよう" +
+                "な情報を使用することができるものとし、お客様はこれに同意します。\n\n" +
+                "これらの取得情報は、以下のような情報になります。\n" +
+                "\t 機器情報(Device ID)\n" +
+                "\t 機種情報(Product ID)\n" +
+                "\t IP アドレス(IP Address)\n" +
+                "\t MAC アドレス(MAC Address)\n" +
+                "\t 機種及びソフトウェアバージョン情報(Version)\n" +
+                "\t 製品シリアルナンバー(Serial Number)\n" +
+                "\t ユーザーID(User ID)\n" +
+                "\t ユーザータイプ(Client Type)\n" +
+                "\t 設定言語情報(Language)\n" +
+                "\t 国情報(Country)\n" +
+                "\t タイムゾーン情報(Time Zone)\n\n" +
+                "本製品は、機能改善やバグの修正等のため、弊社又は第三者プロバイダーによりアップ" +
+                "デートされることがあります。アップデートは、弊社又は第三者プロバイダーの判断に" +
+                "より行われるものとし、これらのアップデートにより、本サービスの機能が変更された" +
+                "り、一部の情報が削除されたりする可能性もあります。弊社は、これらのアップデート" +
+                "を含む変更、本サービスの中断、中止その他の障害について、法令の許容する範囲内に" +
+                "おいて、一切の責任を負いません。\n\n" +
+                "なお、お客様が本製品を通じて、第三者プロバイダーが提供する各種ソフトウェアアプ" +
+                "リケーションやサービス(例えば、各種ソーシャルネットワークサービスやオンライン" +
+                "ショッピングなど)を使用する場合に、お客様の個人データの収集と使用の許諾を求め" +
+                "られる場合があります。これらの第三者プロバイダーが、各々のサービスを提供するた" +
+                "めに要求する個人データの収集や使用については、弊社は管理しておらず、また関与も" +
+                "していません。各サービスに対する利用と同意については、お客様ご自身でご確認いた" +
+                "だきご判断いただくようお願い致します。また、これらの許諾に関しお客様が非同意を" +
+                "選択したことなどにより、第三者プロバイダーが提供するサービスや機能に制限が出た" +
+                "場合、あるいは第三者プロバイダーに取得された個人データの使用内容に問題が出た場" +
+                "合であっても、弊社は、一切責任を負わないものとします。\n\n" +
+                "2. 第三者サービスについて\n" +
+                "本製品の利用においては、第三者プロバイダーのサービスや Web サイト(以下、総称" +
+                "して「第三者サービス」)へアクセスが可能になる場合があります。お客様は、これらの" +
+                "サービスのいずれかを使用することにより、不快、下品、又は好ましくないと見なされ" +
+                "る可能性のあるコンテンツに遭遇する、もしくは特定の URL の検索又は入力の結果が" +
+                "自動的に発生するなどの場合があります。弊社は、そのような不快、下品、又は好まし" +
+                "くないと見なされる可能性のあるコンテンツについて、お客様に対して一切の責任を負" +
+                "わないものとします。\n" +
+                "また、弊社は、第三者サービスの内容、正確性、完全性、適時性、有効性、著作権、コ" +
+                "ンプライアンス、合法性、品質等について一切保証を行わないものとし、これらについ" +
+                "て、お客様又は他の人に対していかなる責任を負わないものとします。\n\n" +
+                "3. サービス、アプリケーションのライセンス\n" +
+                "弊社、及び第三者プロバイダーが本製品上で提供するサービスにおけるライセンスに" +
+                "ついては、明示的な説明をしてある場合及び許諾をしている場合を除き、ライセンス" +
+                "の移転、譲与、貸与、ライセンスの二次的な売却その他一切の利用は許可されていま" +
+                "せん。これらの活動に伴いお客様ご自身に不利益が発生した場合にも、弊社は一切責" +
+                "任を負わないものとします。\n\n" +
+                "すべてのライセンス、アプリケーション及びサービスは、明示又は黙示を問わず、い" +
+                "かなる種類の保証もなく、提供時点での「現状有姿」及び「利用可能な状態」で提供" +
+                "されます。弊社は、これら各種サービスの商品性、品質、特定の目的への適合性、正" +
+                "確性、目的への有効性、合法性、完全性に対して、明示又は黙示を問わず各種サービ" +
+                "スに関するすべての保証及び条件を明示的に否認します。ライセンス、アプリケーシ" +
+                "ョン又はサービスに欠陥があることが判明した場合に発生する、お客様のいかなる不" +
+                "利益、サービス費用、修理、追加ライセンスの全費用などに対して、弊社は責任を負" +
+                "わないものとします。\n\n" +
+                "これら各種サービスは、通知なしに変更、一時停止、削除、終了、又は中断等(以" +
+                "下、「変更等」といいます。)される場合があり、アクセスが無効になる場合がありま" +
+                "す。弊社は、各種サービスに含まれるコンテンツ又はサービスが提供する内容の変更" +
+                "等について、通知しない場合があり、これに伴う各種の不利益を保証しません。\n" +
+                "また、第三者プロバイダーが提供する各サービス、コンテンツは、弊社が管理できな" +
+                "いネットワーク及び送信設備を介して第三者によって送信されます。弊社は、本製品" +
+                "を通じて利用可能になったコンテンツ又はサービスの変更等について、一切の責任又" +
+                "は義務を明示的に否認します。各種サービスを提供する第三者プロバイダーは、通知" +
+                "なしにいつでもライセンス、アプリケーション又はサービスへのアクセスを変更、一" +
+                "時停止、削除、又は無効にする権利を留保します。また、各第三者プロバイダーは、" +
+                "いかなる場合でも、通知又は責任を負うことなく、特定のライセンス、アプリケーシ" +
+                "ョン又はサービスの使用又はアクセスに制限を課す場合があります。\n\n" +
+                "弊社は、第三者プロバイダーが提供するアプリケーション、ライセンス及びサービス" +
+                "に関して、カスタマーサービスを提供することはいたしかねます。これらの第三者プ" +
+                "ロバイダーが提供する各種サービスに対する質問又は要求は、それぞれのプロバイダ" +
+                "ーに直接行っていただく必要があります。\n\n" +
+                "4. 特定機能の利用制限\n" +
+                "第三者プロバイダーの制限により、特定の機能、アプリケーション、及びサービスは、" +
+                "本製品(及び追加周辺機器を含む)で、特定の地域又はすべての地域で利用できない場" +
+                "合があります。 本製品の一部の機能又は各種プロバイダーにより提供されるアプリケ" +
+                "ーションやサービスには、別売りの追加の周辺機器、会費あるいは追加のライセンス費" +
+                "用が必要になる場合もあります。\n" +
+                "これら特定機能の利用制限及び追加費用が発生することによる、お客様の様々な不利益" +
+                "に対して、弊社は一切責任を負わないものとします。\n\n" +
+                "5. 禁止行為\n" +
+                "お客様は、本規約に違反する行為、弊社又は第三者プロバイダーの知的財産権、所有権" +
+                "その他の権利を侵害する行為、弊社又は第三者に不利益若しくは損害を与える行為、不" +
+                "当に他人の名誉や権利、信用を傷つける行為、法令又は条例等に違反する行為、公序良" +
+                "俗に反する行為、犯罪行為、犯罪行為に結びつく行為若しくはこれを助長する行為、弊" +
+                "社のシステムへの不正アクセス、弊社もしくは本サービスの信用を損なう行為、他のお" +
+                "客様のアカウントの利用その他の方法により、第三者になりすまして本サービスを利用" +
+                "する行為、又はこれらの恐れのある行為を一切行ってはならないものとします。\n\n" +
+                "6. 非保証\n" +
+                "また、お客様は、本製品又は本サービスの利用のために必要な機器、通信手段等の環" +
+                "境をすべて自らの費用と責任で備えます。本サービスの利用にあたり必要となる通信" +
+                "費用は、すべてお客様の負担とします。お客様は、お客様情報及び通信機器の管理責" +
+                "任を負うとともに、お客様情報及び通信機器の管理不十分、利用上の過誤、第三者の" +
+                "利用等による損害の責任はお客様が負うものとし、弊社は一切の責任を負いません。" +
+                "また、弊社又は第三者プロバイダーは、法令により許容される範囲において、送受信" +
+                "データの消失、データの送受信エラー等のお客様の送受信に関する事項についての責" +
+                "任を一切負わないものとします。\n\n" +
+                "お客様は、法令の範囲内で本サービスを利用しなければならないものとします。本サ" +
+                "ービスの利用に関連してお客様が日本又は外国の法令に触れた場合でも、弊社は一切" +
+                "の責任を負いません。また、予期しない不正アクセス等の行為によってお客様情報を" +
+                "盗取された場合でも、それによって生じるお客様の損害等に対して、弊社は一切の責" +
+                "任を負いません。\n\n" +
+                "弊社は、天災、地変、火災、ストライキ、通商停止、戦争、内乱、感染症の流行その" +
+                "他の不可抗力により本規約の全部又は一部に不履行が発生した場合、一切の責任を負" +
+                "いません。\n\n" +
+                "また、本サービスの利用に関し、お客様が他のお客様との間でトラブル(本サービス" +
+                "内外を問いません。)になった場合でも、弊社は一切の責任を負わず、お客様間のトラ" +
+                "ブルは、当該お客様が自らの費用と負担において解決します。\n\n" +
+                "7. 法的な要求による制限\n" +
+                "弊社又は第三者プロバイダーは、そのような損害の可能性について知らされていたとし" +
+                "ても、適用法で許容される範囲において、債務不履行、不当利得、不法行為その他請求" +
+                "原因の如何にかかわらず、あらゆる特別損害、間接損害、懲罰的賠償、派生的損害その" +
+                "他これらに準ずるものについて責任を負わないものとします。\n" +
+                "また、犯罪捜査あるいは犯罪抑止の目的で各国当局から法的な要請があった場合は、お" +
+                "客様の意思にかかわらず、弊社は取得情報の提供などを、法的に許諾されている範囲に" +
+                "おいて、お客様の許諾を得ずに各国当局に提供する場合があります。\n\n" +
+                "8. 規約の変更\n" +
+                "本規約を最新の状態に保つため、又は法的要件を遵守又は弊社の事業方針を変更するた" +
+                "めに、適宜変更することがあります。弊社は、お客様の承諾を得ることなく本規約を変" +
+                "更できるものとします。この場合、本規約の各条件は、変更後の本規約の内容によりま" +
+                "す。弊社は可能な限り速やかに、変更後の内容を弊社のウェブサイトに通知を掲載する" +
+                "など弊社所定の方法によりお知らせするものとします。\n\n\n" +
+                "更新日:2021 年 5月 6日";
+		mTitle.setText(title);		
+        mText.setText(content);
+        
+
+        mButton = findViewById(R.id.privacy_button);
+        mButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                onNext();
+            }
+        });
+		mButton.setVisibility(View.GONE);
+    }
+	
+    private void onNext(){
+		if (!provisioned) {
+			Intent intent = WizardManagerHelper.getNextIntent(getIntent(), RESULT_OK);
+			try {
+				startActivityForResult(intent, RESULT_OK);
+			} catch (ActivityNotFoundException e) {
+				Log.e("incar", "onNext error: " + e.getMessage());
+			}
+		} else {
+			finish();
+		}
+    }
+}
\ No newline at end of file
  1. 在开机向导最后添加一个监管授权界面,有两个目录需要修改:

2.1 packages/apps/Settings 目录,修改如下:

java 复制代码
commit 1328607a8a18e4ae6fc3ff7bb12f3c1b8ae1d57f
Author: incar <chs@incartech.cn>
Date:   Fri Apr 24 11:57:01 2026 +0800

    在开机向导最后加一个监管授权说明界面--还有修改在vendor/gms_express目录
    
    Change-Id: Iddc56ab5eea4aead8a58e09f182b9a82c35e8cc7

diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index e4f5a4c3d87..b00be43d147 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -5745,6 +5745,16 @@
                 <action android:name="com.incar.ACTION_JP_PRIVACY"/>
                 <category android:name="android.intent.category.DEFAULT"/>
             </intent-filter>
+        </activity>	
+
+        <activity
+            android:name=".deviceinfo.privacy.PrivacyActivity1"
+            android:theme="@style/Theme.Settings.NoActionBar"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="com.incar.ACTION_JP_PRIVACY1"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
         </activity>		
     </application>
 </manifest>
diff --git a/src/com/android/settings/deviceinfo/privacy/PrivacyActivity1.java b/src/com/android/settings/deviceinfo/privacy/PrivacyActivity1.java
new file mode 100755
index 00000000000..003da7b95f9
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/privacy/PrivacyActivity1.java
@@ -0,0 +1,195 @@
+package com.android.settings.deviceinfo.privacy;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.annotation.SuppressLint;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+import android.util.Log;
+import com.android.settings.R;
+import com.google.android.setupcompat.util.WizardManagerHelper;
+import android.content.ActivityNotFoundException;
+
+import android.provider.Settings;
+
+public class PrivacyActivity1 extends Activity {
+
+    private TextView mText, mTitle;
+	private Button mButton;
+	private boolean provisioned;
+
+    @SuppressLint("MissingInflatedId")
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.privacy_information);
+        mText = findViewById(R.id.privacy_text);
+		mTitle = findViewById(R.id.privacy_title);
+		
+		provisioned = Settings.Global.getInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 0) == 1;
+		
+		String title = "利用規約及び情報の取扱いについて\n";
+        String content = 
+                "この「利用規約及び情報の取扱いについて」(以下「本規約」)は、 お客様が、このタブレ" +
+                "ット(以下、「本製品」といいます。)を利用するに当たり、本製品を通じてお客様に提供さ" +
+                "れるコンテンツ及びサービス(以下、総称して「本サービス」といいます。)に関する利用" +
+                "条件、利用方法、及びお客様から取得される情報とその取扱い等を定めたものです。なお、" +
+                "お客様が本製品の利用を開始した場合、お客様は、本規約に同意いただいたものとみなしま" +
+                "す。\n\n" +
+                "1. 端末データの収集について\n" +
+                "弊社、及びアプリケーションや本製品を利用した各種サービスのプロバイダー(以下、" +
+                "これらのプロバイダーを総称して「第三者プロバイダー」といいます。)は、ソフトウェ" +
+                "アアップデート、各種サービスの提供を容易にするために、このデバイス、システム及" +
+                "びアプリケーションソフトウェア、及び周辺機器に関する技術情報、技術データ、関連" +
+                "情報(以下、「取得情報」といいます。)を収集及び使用する場合があります。" +
+                "弊社、及び第三者プロバイダーは、本製品及びライセンスアプリケーションに関連する" +
+                "サポート及びその他のサービスのために、個人を特定しない形式である限り、そのよう" +
+                "な情報を使用することができるものとし、お客様はこれに同意します。\n\n" +
+                "これらの取得情報は、以下のような情報になります。\n" +
+                "\t 機器情報(Device ID)\n" +
+                "\t 機種情報(Product ID)\n" +
+                "\t IP アドレス(IP Address)\n" +
+                "\t MAC アドレス(MAC Address)\n" +
+                "\t 機種及びソフトウェアバージョン情報(Version)\n" +
+                "\t 製品シリアルナンバー(Serial Number)\n" +
+                "\t ユーザーID(User ID)\n" +
+                "\t ユーザータイプ(Client Type)\n" +
+                "\t 設定言語情報(Language)\n" +
+                "\t 国情報(Country)\n" +
+                "\t タイムゾーン情報(Time Zone)\n\n" +
+                "本製品は、機能改善やバグの修正等のため、弊社又は第三者プロバイダーによりアップ" +
+                "デートされることがあります。アップデートは、弊社又は第三者プロバイダーの判断に" +
+                "より行われるものとし、これらのアップデートにより、本サービスの機能が変更された" +
+                "り、一部の情報が削除されたりする可能性もあります。弊社は、これらのアップデート" +
+                "を含む変更、本サービスの中断、中止その他の障害について、法令の許容する範囲内に" +
+                "おいて、一切の責任を負いません。\n\n" +
+                "なお、お客様が本製品を通じて、第三者プロバイダーが提供する各種ソフトウェアアプ" +
+                "リケーションやサービス(例えば、各種ソーシャルネットワークサービスやオンライン" +
+                "ショッピングなど)を使用する場合に、お客様の個人データの収集と使用の許諾を求め" +
+                "られる場合があります。これらの第三者プロバイダーが、各々のサービスを提供するた" +
+                "めに要求する個人データの収集や使用については、弊社は管理しておらず、また関与も" +
+                "していません。各サービスに対する利用と同意については、お客様ご自身でご確認いた" +
+                "だきご判断いただくようお願い致します。また、これらの許諾に関しお客様が非同意を" +
+                "選択したことなどにより、第三者プロバイダーが提供するサービスや機能に制限が出た" +
+                "場合、あるいは第三者プロバイダーに取得された個人データの使用内容に問題が出た場" +
+                "合であっても、弊社は、一切責任を負わないものとします。\n\n" +
+                "2. 第三者サービスについて\n" +
+                "本製品の利用においては、第三者プロバイダーのサービスや Web サイト(以下、総称" +
+                "して「第三者サービス」)へアクセスが可能になる場合があります。お客様は、これらの" +
+                "サービスのいずれかを使用することにより、不快、下品、又は好ましくないと見なされ" +
+                "る可能性のあるコンテンツに遭遇する、もしくは特定の URL の検索又は入力の結果が" +
+                "自動的に発生するなどの場合があります。弊社は、そのような不快、下品、又は好まし" +
+                "くないと見なされる可能性のあるコンテンツについて、お客様に対して一切の責任を負" +
+                "わないものとします。\n" +
+                "また、弊社は、第三者サービスの内容、正確性、完全性、適時性、有効性、著作権、コ" +
+                "ンプライアンス、合法性、品質等について一切保証を行わないものとし、これらについ" +
+                "て、お客様又は他の人に対していかなる責任を負わないものとします。\n\n" +
+                "3. サービス、アプリケーションのライセンス\n" +
+                "弊社、及び第三者プロバイダーが本製品上で提供するサービスにおけるライセンスに" +
+                "ついては、明示的な説明をしてある場合及び許諾をしている場合を除き、ライセンス" +
+                "の移転、譲与、貸与、ライセンスの二次的な売却その他一切の利用は許可されていま" +
+                "せん。これらの活動に伴いお客様ご自身に不利益が発生した場合にも、弊社は一切責" +
+                "任を負わないものとします。\n\n" +
+                "すべてのライセンス、アプリケーション及びサービスは、明示又は黙示を問わず、い" +
+                "かなる種類の保証もなく、提供時点での「現状有姿」及び「利用可能な状態」で提供" +
+                "されます。弊社は、これら各種サービスの商品性、品質、特定の目的への適合性、正" +
+                "確性、目的への有効性、合法性、完全性に対して、明示又は黙示を問わず各種サービ" +
+                "スに関するすべての保証及び条件を明示的に否認します。ライセンス、アプリケーシ" +
+                "ョン又はサービスに欠陥があることが判明した場合に発生する、お客様のいかなる不" +
+                "利益、サービス費用、修理、追加ライセンスの全費用などに対して、弊社は責任を負" +
+                "わないものとします。\n\n" +
+                "これら各種サービスは、通知なしに変更、一時停止、削除、終了、又は中断等(以" +
+                "下、「変更等」といいます。)される場合があり、アクセスが無効になる場合がありま" +
+                "す。弊社は、各種サービスに含まれるコンテンツ又はサービスが提供する内容の変更" +
+                "等について、通知しない場合があり、これに伴う各種の不利益を保証しません。\n" +
+                "また、第三者プロバイダーが提供する各サービス、コンテンツは、弊社が管理できな" +
+                "いネットワーク及び送信設備を介して第三者によって送信されます。弊社は、本製品" +
+                "を通じて利用可能になったコンテンツ又はサービスの変更等について、一切の責任又" +
+                "は義務を明示的に否認します。各種サービスを提供する第三者プロバイダーは、通知" +
+                "なしにいつでもライセンス、アプリケーション又はサービスへのアクセスを変更、一" +
+                "時停止、削除、又は無効にする権利を留保します。また、各第三者プロバイダーは、" +
+                "いかなる場合でも、通知又は責任を負うことなく、特定のライセンス、アプリケーシ" +
+                "ョン又はサービスの使用又はアクセスに制限を課す場合があります。\n\n" +
+                "弊社は、第三者プロバイダーが提供するアプリケーション、ライセンス及びサービス" +
+                "に関して、カスタマーサービスを提供することはいたしかねます。これらの第三者プ" +
+                "ロバイダーが提供する各種サービスに対する質問又は要求は、それぞれのプロバイダ" +
+                "ーに直接行っていただく必要があります。\n\n" +
+                "4. 特定機能の利用制限\n" +
+                "第三者プロバイダーの制限により、特定の機能、アプリケーション、及びサービスは、" +
+                "本製品(及び追加周辺機器を含む)で、特定の地域又はすべての地域で利用できない場" +
+                "合があります。 本製品の一部の機能又は各種プロバイダーにより提供されるアプリケ" +
+                "ーションやサービスには、別売りの追加の周辺機器、会費あるいは追加のライセンス費" +
+                "用が必要になる場合もあります。\n" +
+                "これら特定機能の利用制限及び追加費用が発生することによる、お客様の様々な不利益" +
+                "に対して、弊社は一切責任を負わないものとします。\n\n" +
+                "5. 禁止行為\n" +
+                "お客様は、本規約に違反する行為、弊社又は第三者プロバイダーの知的財産権、所有権" +
+                "その他の権利を侵害する行為、弊社又は第三者に不利益若しくは損害を与える行為、不" +
+                "当に他人の名誉や権利、信用を傷つける行為、法令又は条例等に違反する行為、公序良" +
+                "俗に反する行為、犯罪行為、犯罪行為に結びつく行為若しくはこれを助長する行為、弊" +
+                "社のシステムへの不正アクセス、弊社もしくは本サービスの信用を損なう行為、他のお" +
+                "客様のアカウントの利用その他の方法により、第三者になりすまして本サービスを利用" +
+                "する行為、又はこれらの恐れのある行為を一切行ってはならないものとします。\n\n" +
+                "6. 非保証\n" +
+                "また、お客様は、本製品又は本サービスの利用のために必要な機器、通信手段等の環" +
+                "境をすべて自らの費用と責任で備えます。本サービスの利用にあたり必要となる通信" +
+                "費用は、すべてお客様の負担とします。お客様は、お客様情報及び通信機器の管理責" +
+                "任を負うとともに、お客様情報及び通信機器の管理不十分、利用上の過誤、第三者の" +
+                "利用等による損害の責任はお客様が負うものとし、弊社は一切の責任を負いません。" +
+                "また、弊社又は第三者プロバイダーは、法令により許容される範囲において、送受信" +
+                "データの消失、データの送受信エラー等のお客様の送受信に関する事項についての責" +
+                "任を一切負わないものとします。\n\n" +
+                "お客様は、法令の範囲内で本サービスを利用しなければならないものとします。本サ" +
+                "ービスの利用に関連してお客様が日本又は外国の法令に触れた場合でも、弊社は一切" +
+                "の責任を負いません。また、予期しない不正アクセス等の行為によってお客様情報を" +
+                "盗取された場合でも、それによって生じるお客様の損害等に対して、弊社は一切の責" +
+                "任を負いません。\n\n" +
+                "弊社は、天災、地変、火災、ストライキ、通商停止、戦争、内乱、感染症の流行その" +
+                "他の不可抗力により本規約の全部又は一部に不履行が発生した場合、一切の責任を負" +
+                "いません。\n\n" +
+                "また、本サービスの利用に関し、お客様が他のお客様との間でトラブル(本サービス" +
+                "内外を問いません。)になった場合でも、弊社は一切の責任を負わず、お客様間のトラ" +
+                "ブルは、当該お客様が自らの費用と負担において解決します。\n\n" +
+                "7. 法的な要求による制限\n" +
+                "弊社又は第三者プロバイダーは、そのような損害の可能性について知らされていたとし" +
+                "ても、適用法で許容される範囲において、債務不履行、不当利得、不法行為その他請求" +
+                "原因の如何にかかわらず、あらゆる特別損害、間接損害、懲罰的賠償、派生的損害その" +
+                "他これらに準ずるものについて責任を負わないものとします。\n" +
+                "また、犯罪捜査あるいは犯罪抑止の目的で各国当局から法的な要請があった場合は、お" +
+                "客様の意思にかかわらず、弊社は取得情報の提供などを、法的に許諾されている範囲に" +
+                "おいて、お客様の許諾を得ずに各国当局に提供する場合があります。\n\n" +
+                "8. 規約の変更\n" +
+                "本規約を最新の状態に保つため、又は法的要件を遵守又は弊社の事業方針を変更するた" +
+                "めに、適宜変更することがあります。弊社は、お客様の承諾を得ることなく本規約を変" +
+                "更できるものとします。この場合、本規約の各条件は、変更後の本規約の内容によりま" +
+                "す。弊社は可能な限り速やかに、変更後の内容を弊社のウェブサイトに通知を掲載する" +
+                "など弊社所定の方法によりお知らせするものとします。\n\n\n" +
+                "更新日:2021 年 5月 6日";
+		mTitle.setText(title);
+        mText.setText(content);
+        
+
+        mButton = findViewById(R.id.privacy_button);
+        mButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                onNext();
+            }
+        });
+    }
+	
+    private void onNext(){
+		if (!provisioned) {
+			Intent intent = WizardManagerHelper.getNextIntent(getIntent(), RESULT_OK);
+			try {
+				startActivityForResult(intent, RESULT_OK);
+			} catch (ActivityNotFoundException e) {
+				Log.e("incar", "onNext error: " + e.getMessage());
+			}
+		} else {
+			finish();
+		}
+    }
+}
\ No newline at end of file

2.2 vendor/gms_express目录,修改如下:

java 复制代码
commit 28f2b4a0d42dd55ab49e37719d74cf16b4f090dc
Author: incar <chs@incartech.cn>
Date:   Fri Apr 24 11:58:29 2026 +0800

    在开机向导最后加一个监管授权说明界面--还有修改在packages/apps/Settings目录
    
    Change-Id: I81d88e7e18f18b6a88cc6b6a2159c03a08a3aafd

diff --git a/apps/GmsSampleIntegrationExpress/res/raw/wizard_script.xml b/apps/GmsSampleIntegrationExpress/res/raw/wizard_script.xml
index d9471d3..6aa6b6c 100644
--- a/apps/GmsSampleIntegrationExpress/res/raw/wizard_script.xml
+++ b/apps/GmsSampleIntegrationExpress/res/raw/wizard_script.xml
@@ -82,7 +82,7 @@
 
     <WizardAction id="nfc_provision_flow"
         wizard:script="android.resource://com.google.android.gmsintegration/raw/wizard_script_nfc_provision_flow">
-        <result wizard:action="oem_post_setup" />
+        <result wizard:action="incar_oem_post_setup" />
     </WizardAction>
 
     <WizardAction id="check_user_unlock_work_setup_interrupted_qr_scan"
@@ -114,7 +114,7 @@
 
     <WizardAction id="check_user_unlock_dpm_user_complete"
         wizard:uri="intent:#Intent;package=com.google.android.setupwizard;action=com.android.setupwizard.CHECK_USER_UNLOCK;end">
-        <result wizard:action="oem_post_setup" />
+        <result wizard:action="incar_oem_post_setup" />
     </WizardAction>
 
     <WizardAction id="check_user_unlock"
@@ -197,7 +197,7 @@
 
     <WizardAction id="quick_start_flow"
         wizard:script="android.resource://com.google.android.gmsintegration/raw/wizard_script_quick_start_flow">
-        <result wizard:action="oem_post_setup" />
+        <result wizard:action="incar_oem_post_setup" />
     </WizardAction>
 
     <!-- Network selection and packages update [REQUIRED, CUSTOMIZABLE] -->
@@ -239,7 +239,7 @@
     <!-- Restore from an existing account or device [RECOMMENDED, CUSTOMIZABLE] -->
     <WizardAction id="unified_restore_flow"
         wizard:script="android.resource://com.google.android.gmsintegration/raw/wizard_script_unified_restore_flow">
-        <result wizard:action="oem_post_setup" />
+        <result wizard:action="incar_oem_post_setup" />
     </WizardAction>
 
     <WizardAction id="work_profile_setup"
@@ -250,7 +250,7 @@
     <!-- Set up without a network connection [RECOMMENDED] -->
     <WizardAction id="no_network_flow"
         wizard:script="android.resource://com.google.android.gmsintegration/raw/wizard_script_no_network_flow">
-        <result wizard:action="oem_post_setup" />
+        <result wizard:action="incar_oem_post_setup" />
     </WizardAction>
 
     <WizardAction id="transition_to_personal_profile_setup"
@@ -264,33 +264,38 @@
     <!-- Add personal account after work profile provisioning [REQUIRED] -->
     <WizardAction id="add_personal_account_after_work_profile"
         wizard:script="android.resource://com.google.android.gmsintegration/raw/wizard_script_account_flow">
-        <result wizard:action="oem_post_setup" />
+        <result wizard:action="incar_oem_post_setup" />
     </WizardAction>
 
     <!-- Setup as new [REQUIRED] -->
     <WizardAction id="setup_as_new_flow" wizard:flow="SetupAsNewFlow"
         wizard:script="android.resource://com.google.android.gmsintegration/raw/wizard_script_account_flow">
-        <result wizard:action="oem_post_setup" />
+        <result wizard:action="incar_oem_post_setup" />
     </WizardAction>
 
     <!-- Set up without an account [REQUIRED] -->
     <WizardAction id="no_account_flow"
         wizard:script="android.resource://com.google.android.gmsintegration/raw/wizard_script_no_account_flow">
-        <result wizard:action="oem_post_setup" />
+        <result wizard:action="incar_oem_post_setup" />
     </WizardAction>
 
     <!-- Flow to run after a user-led device policy managed setup. [RECOMMENDED] -->
     <WizardAction id="post_dpm_user_flow"
         wizard:script="android.resource://com.google.android.gmsintegration/raw/wizard_script_post_dpm_user_flow">
-        <result wizard:action="oem_post_setup" />
+        <result wizard:action="incar_oem_post_setup" />
     </WizardAction>
 
     <!-- QR provision flow (for enterprise) [RECOMMENDED] -->
     <WizardAction id="qr_provision_flow"
         wizard:script="android.resource://com.google.android.gmsintegration/raw/wizard_script_qr_provision_flow">
-        <result wizard:action="oem_post_setup" />
+        <result wizard:action="incar_oem_post_setup" />
     </WizardAction>
 
+    <WizardAction id="incar_oem_post_setup"
+        wizard:uri="intent:#Intent;action=com.incar.ACTION_JP_PRIVACY1;end">
+        <result wizard:action="oem_post_setup" />
+     </WizardAction>
+
     <!-- OEM completion [CUSTOMIZABLE] -->
     <WizardAction id="oem_post_setup"
         wizard:uri="intent:#Intent;action=com.android.setupwizard.OEM_POST_SETUP;end" />
相关推荐
JJay.2 小时前
Android BLE 为什么连上了却收不到数据
android
TE-茶叶蛋2 小时前
Maven install 的原理
java·maven
想带你从多云到转晴2 小时前
06、数据结构与算法---二叉树
java·数据结构·算法
夏沫琅琊2 小时前
Android联系人导入导出
android·kotlin
likerhood2 小时前
设计模式:原型模式(Prototype Pattern)java版本
java·设计模式·原型模式
wuxuanok2 小时前
Maven 编译报错:java.lang.NoSuchFieldError: JCImport 问题总结
java·开发语言·maven
薛定谔的猫19822 小时前
gradio学习代码部分
java·前端·javascript
Devin~Y2 小时前
大厂Java面试实战:Spring Boot + Redis + Kafka + Kubernetes + RAG 的三轮追问(附答案解析)
java·spring boot·redis·spring cloud·kafka·kubernetes·resilience4j