Android: coreApp在manifest中是什么意思

Android: what does coreApp means in the manifest

在清单中,我看到了一个代码

<manifest xmlns:tools="http://schemas.android.com/tools"
    package="com.example.test"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:versionCode="1"
    android:versionName="1.0"
    android:sharedUserId="android.uid.system"
    coreApp="true">

coreApp 是什么意思?

coreApp="true" 表示应用程序将在特定启动 mod 启用时启动,也许 "Safe mode":

The system can successfully boot (though a little painfully) with only framework-res.apk, SettingsProvider.apk, SystemUI.apk, DefaultContainerService.apk, and Launcher2.apk set as core apps.

来自 Android Git 存储库: https://android.googlesource.com/platform/frameworks/base/+/d2509fd83597595914ef0627685e917380863eb6%5E!/

根据Android-8.0代码com.android.server.SystemServer#startBootstrapServices

        // Only run "core" apps if we're encrypting the device.
    String cryptState = SystemProperties.get("vold.decrypt");
    if (ENCRYPTING_STATE.equals(cryptState)) {
        Slog.w(TAG, "Detected encryption in progress - only parsing core apps");
        mOnlyCore = true;
    } else if (ENCRYPTED_STATE.equals(cryptState)) {
        Slog.w(TAG, "Device encrypted - only parsing core apps");
        mOnlyCore = true;
    }

    // Start the package manager.
    if (!mRuntimeRestart) {
        MetricsLogger.histogram(null, "boot_package_manager_init_start",
                (int) SystemClock.elapsedRealtime());
    }
    traceBeginAndSlog("StartPackageManagerService");
    mPackageManagerService = PackageManagerService.main(mSystemContext, installer,
            mFactoryTestMode != FactoryTest.FACTORY_TEST_OFF, mOnlyCore);
    mFirstBoot = mPackageManagerService.isFirstBoot();
    mPackageManager = mSystemContext.getPackageManager();
    traceEnd();