Tính năng Khoá ứng dụng cho phép người dùng bảo mật từng ứng dụng bằng một mã PIN riêng. Tính năng này giúp bảo vệ dữ liệu nhạy cảm khỏi bị khách hoặc người dùng phụ truy cập, đặc biệt là khi người dùng chính không ở trong xe.
Tính năng Khoá ứng dụng hoạt động độc lập với tính năng khoá hồ sơ. Thiết kế này giúp người dùng linh hoạt bảo mật các ứng dụng nhạy cảm cụ thể mà không cần khoá toàn bộ hồ sơ người dùng.
Tính năng Khoá ứng dụng có sẵn dưới dạng một ứng dụng không đi kèm trong Android 14 (cấp độ API 34) trở lên. Bạn có thể phát triển ứng dụng này riêng biệt với nền tảng Android Automotive OS (AAOS) cốt lõi. Tuy nhiên, bạn phải triển khai ứng dụng Khoá ứng dụng dưới dạng một ứng dụng đặc quyền được ký bằng nền tảng và đi kèm với hình ảnh nền tảng của bạn.
Người dùng được thông báo về tính năng Khoá ứng dụng khi họ cài đặt ứng dụng:
Hình 1. Thông báo Khoá ứng dụng xuất hiện sau khi cài đặt một ứng dụng.
Tính năng Khoá ứng dụng bị tắt theo mặc định. Khi bật tính năng này, người dùng được nhắc đặt mã PIN. Sau đó, người dùng phải nhập mã PIN này để truy cập vào bất kỳ ứng dụng nào được bảo mật bằng tính năng Khoá ứng dụng:
Hình 2. Cài đặt Khoá ứng dụng.
Khi cố gắng mở một ứng dụng bị khoá, người dùng được nhắc nhập mã PIN Khoá ứng dụng:
Hình 3. Lời nhắc Khoá ứng dụng khi cố gắng mở một ứng dụng bị khoá.
Định cấu hình tính năng Khoá ứng dụng
Để áp dụng cấu hình ứng dụng, hãy chỉnh sửa res/values/config.xml:
<resources>
<!--A customizable list of system packages that appear in the App Lock settings. -->
<string-array name="system_lockable_packages">
<item>com.android.car.calendar</item>
</string-array>
<!-- Config for allowing locking of media apps. -->
<bool name="config_enableMediaAppsLocking">true</bool>
<!-- Default account type used for recovering pin. -->
<string name="config_recoveryAccountType" translatable="false">com.google</string>
</resources>
Tuỳ chỉnh các ứng dụng có thể khoá
Theo mặc định, các ứng dụng hệ thống không thể khoá. Bạn có thể chỉ định các ứng dụng hệ thống có thể khoá bằng cấu hình system_lockable_packages.
Không thể khoá các ứng dụng cốt lõi như ứng dụng Cài đặt, ứng dụng điều hướng và trợ lý giọng nói vì việc này có thể gây ra hành vi không thể đoán trước của hệ thống.
Để bật tính năng Khoá ứng dụng cho một ứng dụng hệ thống, hãy sử dụng danh sách system_lockable_packages:
<!-- List of system packages that appear in the App Lock settings. -->
<string-array name="system_lockable_packages">
<item>com.android.car.calendar</item>
</string-array>
Định cấu hình tính năng tạm dừng nội dung nghe nhìn
Theo mặc định, các ứng dụng đa phương tiện có thể bị khoá nếu nền tảng hỗ trợ Ứng dụng đa phương tiện cho ô tô từ Car-apps-release 17 trở lên. Nếu không hỗ trợ Car-apps-release 17 trở lên, bạn có thể tắt tính năng khoá ứng dụng đa phương tiện:
<!-- Config for allowing locking of media apps. -->
<bool name="config_enableMediaAppsLocking">false</bool>
Thiết lập quy trình khôi phục
Người dùng có thể quên mã PIN Khoá ứng dụng. Sử dụng config_recoveryAccountType để tuỳ chỉnh loại tài khoản dùng để khôi phục mã PIN.
<!-- Default account type used for recovering pin. -->
<string name="config_recoveryAccountType" translatable="false">com.google</string>
Tính năng Khoá ứng dụng sẽ đặt lại mã PIN và xoá dữ liệu ứng dụng riêng tư khi người dùng xác thực bằng một tài khoản có loại khớp với config_recoveryAccountType.
Tạo kiểu cho mã tham chiếu
Để tuỳ chỉnh mã tham chiếu, hãy sử dụng lớp phủ tài nguyên thời gian chạy (RRO) để phủ lên
SensitiveAppLockOverlayableResources.
Vì tính năng Khoá ứng dụng sử dụng Thư viện giao diện người dùng cho ô tô, nên các RRO Thư viện giao diện người dùng cho ô tô hiện có cũng có thể được áp dụng cho tính năng Khoá ứng dụng.
Các phím bàn phím số PIN sử dụng cùng một kiểu như được xác định trong styles.xml:
<style name="PinPadKey" parent="Widget.CarUi.Button">
<item name="android:textSize">@dimen/pin_pad_key_text_size</item>
<item name="android:layout_height">@dimen/pin_pad_key_diameter</item>
<item name="android:layout_width">@dimen/pin_pad_key_diameter</item>
…
</style>
Bạn cũng có thể xác định kích thước bàn phím số PIN:
<resources>
<!-- Default dimensions for PIN pad view -->
<dimen name="pin_pad_title_text_size">44sp</dimen>
<dimen name="pin_pad_subtitle_text_size">32sp</dimen>
<dimen name="pin_pad_key_diameter">96dp</dimen>
<dimen name="pin_pad_key_text_size">32sp</dimen>
<dimen name="pin_pad_key_padding">0dp</dimen>
<dimen name="pin_pad_row_spacing">10dp</dimen>
<dimen name="pin_pad_col_spacing">12dp</dimen>
</resources>
Hỗ trợ tính năng tạm dừng để chuyển sang RAM
Để hỗ trợ tính năng tạm dừng để chuyển sang RAM, bạn phải thêm dịch vụ Khoá ứng dụng vào
config_earlyStartupServices:
<string-array translatable="false" name="config_earlyStartupServices">
<!-- App Lock Persistent Background Service -->
<item>com.android.car.sensitiveapplock/.service.PersistentBackgroundService#bind=bind,user=foreground,trigger=userUnlocked</item>
</string-array>
Cấu hình bản dựng
Tính năng Khoá ứng dụng yêu cầu quyền đặc quyền của hệ thống. Các nền tảng hỗ trợ tính năng Khoá ứng dụng cũng phải khai báo tính năng hệ thống com.android.car.sensitive_app_lock.
Thêm khai báo tính năng và quyền vào com.android.car.sensitiveapplock.xml:
<permissions>
<feature name="com.android.car.sensitive_app_lock"/>
<privapp-permissions package="com.android.car.sensitiveapplock">
<permission name="android.permission.GET_ACCOUNTS_PRIVILEGED" />
<permission name="android.permission.QUERY_USERS" />
<permission name="android.permission.MEDIA_CONTENT_CONTROL" />
<permission name="android.car.permission.CAR_POWER" />
<permission name="android.permission.POST_NOTIFICATIONS" />
</privapp-permissions>
</permissions>
Bạn phải nhập tính năng Khoá ứng dụng dưới dạng một ứng dụng hệ thống đã ký trong tệp Android.bp:
android_app_import {
name: "AppLock",
apk: "AppLock.apk",
certificate: "platform",
privileged: true,
required: [
"privapp-com.android.car.sensitiveapplock",
],
optional_uses_libs: [
"androidx.window.extensions",
"androidx.window.sidecar",
"com.android.oem.tokens", /* For Android 16+ */
],
}
prebuilt_etc {
name: "privapp-com.android.car.sensitiveapplock",
sub_dir: "permissions",
src: "com.android.car.sensitiveapplock.xml",
filename_from_src: true,
}
Vì chế độ người dùng hệ thống không có giao diện người dùng (HSUM) và người dùng Khách không hỗ trợ tính năng Khoá ứng dụng, nên bạn chỉ được bật tính năng Khoá ứng dụng trong hồ sơ phụ. Sử dụng cấu hình này để bật ứng dụng cho người dùng phụ.
Ví dụ: trong preinstalled-packages.xml:
<config>
…
<!-- Config for the Sensitive App Lock app -->
<install-in-user-type package="com.android.car.sensitiveapplock">
<!-- Sensitive App Lock is only available to secondary users. Do not install app in Guest users. -->
<install-in user-type="android.os.usertype.full.SECONDARY" />
</install-in-user-type>
</config>