From 6b1c4a9e09ea096d06351358d731290a11a1e337 Mon Sep 17 00:00:00 2001 From: Isaac Chen Date: Tue, 21 Jan 2020 17:00:34 +0800 Subject: [PATCH] Add a null home activity to Shell.apk In configurations where AOSP Settings.apk is not included, there might not be any home activity. E.g. CSI doesn't have Settings.apk. This CL adds a null home activity to Shell.apk, which is in CSI, so the framework can be in a sane state. Without such null home activity in CSI, package manager fails to install any APKs. Bug: 148044842 Test: $ lunch csi_arm64-userdebug; m -j # Flash CSI to a Pixel (with AVB disabled) and reboot $ m DeviceHealthChecks $ adb install $OUT/testcases/DeviceHealthTests/arm64/DeviceHealthTests.apk Performing Streamed Install Success Change-Id: I87999e30298bbe42af64f28e88fc6dc5975f1ca3 --- packages/Shell/AndroidManifest.xml | 16 +++++++ .../res/layout/null_home_finishing_boot.xml | 44 +++++++++++++++++++ .../Shell/src/com/android/shell/NullHome.java | 43 ++++++++++++++++++ 3 files changed, 103 insertions(+) create mode 100644 packages/Shell/res/layout/null_home_finishing_boot.xml create mode 100644 packages/Shell/src/com/android/shell/NullHome.java diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml index af2569dcb1f28..618f52eb21e67 100644 --- a/packages/Shell/AndroidManifest.xml +++ b/packages/Shell/AndroidManifest.xml @@ -265,6 +265,22 @@ android:excludeFromRecents="true" android:exported="false" /> + + + + + + + + + + diff --git a/packages/Shell/res/layout/null_home_finishing_boot.xml b/packages/Shell/res/layout/null_home_finishing_boot.xml new file mode 100644 index 0000000000000..5f9563a5d25c1 --- /dev/null +++ b/packages/Shell/res/layout/null_home_finishing_boot.xml @@ -0,0 +1,44 @@ + + + + + + + + diff --git a/packages/Shell/src/com/android/shell/NullHome.java b/packages/Shell/src/com/android/shell/NullHome.java new file mode 100644 index 0000000000000..bd975614a50ad --- /dev/null +++ b/packages/Shell/src/com/android/shell/NullHome.java @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2020 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. + */ + +package com.android.shell; + +import android.app.Activity; +import android.os.Bundle; +import android.util.Log; + +/** + * This covers the fallback case where no launcher is available. + * Usually Settings.apk has one fallback home activity. + * Settings.apk, however, is not part of CSI, which needs to be + * standalone (bootable and testable). + */ +public class NullHome extends Activity { + private static final String TAG = "NullHome"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + Log.i(TAG, "onCreate"); + setContentView(R.layout.null_home_finishing_boot); + } + + protected void onDestroy() { + super.onDestroy(); + Log.i(TAG, "onDestroy"); + } +}