1 // 2 // Copyright (C) 2019 The Android Open Source Project 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 // 16 17 #include "gsi_service.h" 18 19 #include <getopt.h> 20 21 #include <string> 22 23 #include <android-base/logging.h> 24 #include <binder/IPCThreadState.h> 25 #include <binder/ProcessState.h> 26 27 using android::ProcessState; 28 using android::sp; 29 using namespace std::literals; 30 main(int argc,char ** argv)31int main(int argc, char** argv) { 32 android::base::InitLogging(argv, android::base::LogdLogger(android::base::SYSTEM)); 33 34 if (argc > 1 && argv[1] == "run-startup-tasks"s) { 35 android::gsi::GsiService::RunStartupTasks(); 36 exit(0); 37 } 38 39 android::gsi::GsiService::Register(); 40 { 41 sp<ProcessState> ps(ProcessState::self()); 42 ps->startThreadPool(); 43 ps->giveThreadPoolName(); 44 } 45 android::IPCThreadState::self()->joinThreadPool(); 46 47 exit(0); 48 } 49