55b61f4c9b
read data once bug fix ability to run fastbootd without network and named socket configuration in init.rc vendortrigger name changed to fastbootd deleted unused function from default implementation of OEM library Change-Id: Ib957fae8172530f20d51bb51b5e07bccab07e555
100 lines
2.2 KiB
C
100 lines
2.2 KiB
C
/*
|
|
* Copyright (C) 2013 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.
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <unistd.h>
|
|
#include <cutils/klog.h>
|
|
#include <getopt.h>
|
|
#include <stdlib.h>
|
|
|
|
#include "debug.h"
|
|
#include "trigger.h"
|
|
#include "socket_client.h"
|
|
#include "secure.h"
|
|
|
|
unsigned int debug_level = DEBUG;
|
|
|
|
void commands_init();
|
|
void usb_init();
|
|
void config_init();
|
|
int transport_socket_init();
|
|
int network_discovery_init();
|
|
void ssh_server_start();
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
int socket_client = 0;
|
|
int c;
|
|
int network = 1;
|
|
|
|
klog_init();
|
|
klog_set_level(6);
|
|
|
|
const struct option longopts[] = {
|
|
{"socket", no_argument, 0, 'S'},
|
|
{"nonetwork", no_argument, 0, 'n'},
|
|
{0, 0, 0, 0}
|
|
};
|
|
|
|
while (1) {
|
|
c = getopt_long(argc, argv, "Sn", longopts, NULL);
|
|
/* Alphabetical cases */
|
|
if (c < 0)
|
|
break;
|
|
switch (c) {
|
|
case 'S':
|
|
socket_client = 1;
|
|
break;
|
|
case 'n':
|
|
network = 0;
|
|
break;
|
|
case '?':
|
|
return 1;
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
(void)argc;
|
|
(void)argv;
|
|
|
|
klog_init();
|
|
klog_set_level(6);
|
|
|
|
if (socket_client) {
|
|
//TODO: Shouldn't we change current tty into raw mode?
|
|
run_socket_client();
|
|
}
|
|
else {
|
|
cert_init_crypto();
|
|
config_init();
|
|
load_trigger();
|
|
commands_init();
|
|
usb_init();
|
|
|
|
if (network) {
|
|
if (!transport_socket_init())
|
|
exit(1);
|
|
ssh_server_start();
|
|
network_discovery_init();
|
|
}
|
|
|
|
while (1) {
|
|
sleep(1);
|
|
}
|
|
}
|
|
return 0;
|
|
}
|