blob: d95b8ef21295f12c0ea695e656a0b708b7c8ec76 [file] [log] [blame]
/*
* Copyright (C) 2022 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.
*/
// Entry for microdroid-specific apexd. This should be kept as minimal as
// possible.
#define LOG_TAG "apexd-vm"
#include <android-base/logging.h>
#include <sys/stat.h>
#include "apexd.h"
static const android::apex::ApexdConfig kMicrodroidConfig = {
android::apex::kApexStatusSysprop,
{android::apex::kApexPackageSystemDir},
// A bunch of things are not used in Microdroid, hence we use nullptr
// instead of an actual value.
nullptr, /* active_apex_data_dir */
nullptr, /* decompression_dir */
nullptr, /* ota_reserved_dir */
nullptr, /* apex_hashtree_dir */
nullptr, /* staged_session_dir */
android::apex::kVmPayloadMetadataPartitionProp,
nullptr, /* active_apex_selinux_ctx */
};
int main(int /*argc*/, char** argv) {
android::base::InitLogging(argv);
android::base::SetMinimumLogSeverity(android::base::INFO);
// set umask to 022 so that files/dirs created are accessible to other
// processes e.g.) /apex/apex-info-list.xml is supposed to be read by other
// processes
umask(022);
android::apex::SetConfig(kMicrodroidConfig);
return android::apex::OnStartInVmMode();
}