From fc98057995ef9c9cc8dda720aa7e0e30d1b34d8e Mon Sep 17 00:00:00 2001 From: Peter Qiu Date: Thu, 24 Sep 2015 10:11:26 -0700 Subject: update file paths for Android On Android, the executables are stored under /system/bin and the data files (e.g. config file) will be stored under /data/misc/apmanager/. So conditionally use those paths for Android. Bug: 22828115 TEST=Manual test on dragonboard TEST=Run unittest for Chrome OS Change-Id: I7db70c93cb1b8c206742a788e356dcc195160f43 --- dhcp_server.cc | 9 +++++++++ hostapd_monitor.cc | 6 ++++++ init.apmanager.rc | 5 +++++ service.cc | 9 +++++++++ 4 files changed, 29 insertions(+) diff --git a/dhcp_server.cc b/dhcp_server.cc index 8e11a0f..de54bdf 100644 --- a/dhcp_server.cc +++ b/dhcp_server.cc @@ -28,11 +28,20 @@ using std::string; namespace apmanager { // static. +#if !defined(__ANDROID__) const char DHCPServer::kDnsmasqPath[] = "/usr/sbin/dnsmasq"; const char DHCPServer::kDnsmasqConfigFilePathFormat[] = "/var/run/apmanager/dnsmasq/dhcpd-%d.conf"; const char DHCPServer::kDHCPLeasesFilePathFormat[] = "/var/run/apmanager/dnsmasq/dhcpd-%d.leases"; +#else +const char DHCPServer::kDnsmasqPath[] = "/system/bin/dnsmasq"; +const char DHCPServer::kDnsmasqConfigFilePathFormat[] = + "/data/misc/apmanager/dnsmasq/dhcpd-%d.conf"; +const char DHCPServer::kDHCPLeasesFilePathFormat[] = + "/data/misc/apmanager/dnsmasq/dhcpd-%d.leases"; +#endif // __ANDROID__ + const char DHCPServer::kServerAddressFormat[] = "192.168.%d.254"; const char DHCPServer::kAddressRangeLowFormat[] = "192.168.%d.1"; const char DHCPServer::kAddressRangeHighFormat[] = "192.168.%d.128"; diff --git a/hostapd_monitor.cc b/hostapd_monitor.cc index 997ec54..29785cb 100644 --- a/hostapd_monitor.cc +++ b/hostapd_monitor.cc @@ -34,8 +34,14 @@ using std::string; namespace apmanager { // static. +#if !defined(__ANDROID__) const char HostapdMonitor::kLocalPathFormat[] = "/var/run/apmanager/hostapd/hostapd_ctrl_%s"; +#else +const char HostapdMonitor::kLocalPathFormat[] = + "/data/misc/apmanager/hostapd/hostapd_ctrl_%s"; +#endif // __ANDROID__ + const char HostapdMonitor::kHostapdCmdAttach[] = "ATTACH"; const char HostapdMonitor::kHostapdRespOk[] = "OK\n"; const char HostapdMonitor::kHostapdEventStationConnected[] = "AP-STA-CONNECTED"; diff --git a/init.apmanager.rc b/init.apmanager.rc index 4947de9..98e03bb 100644 --- a/init.apmanager.rc +++ b/init.apmanager.rc @@ -1,3 +1,8 @@ +on boot + mkdir /data/misc/apmanager 0700 system system + mkdir /data/misc/apmanager/hostapd 0700 system system + mkdir /data/misc/apmanager/dnsmasq 0700 system system + service apmanager /system/bin/apmanager class main user system diff --git a/service.cc b/service.cc index 54a0d94..0761be8 100644 --- a/service.cc +++ b/service.cc @@ -37,11 +37,20 @@ using std::string; namespace apmanager { // static. +#if !defined(__ANDROID__) const char Service::kHostapdPath[] = "/usr/sbin/hostapd"; const char Service::kHostapdConfigPathFormat[] = "/var/run/apmanager/hostapd/hostapd-%d.conf"; const char Service::kHostapdControlInterfacePath[] = "/var/run/apmanager/hostapd/ctrl_iface"; +#else +const char Service::kHostapdPath[] = "/system/bin/hostapd"; +const char Service::kHostapdConfigPathFormat[] = + "/data/misc/apmanager/hostapd/hostapd-%d.conf"; +const char Service::kHostapdControlInterfacePath[] = + "/data/misc/apmanager/hostapd/ctrl_iface"; +#endif // __ANDROID__ + const int Service::kTerminationTimeoutSeconds = 2; // static. Service state definitions. -- cgit v1.2.3