summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Qiu <zqiu@google.com>2015-09-24 10:11:26 -0700
committerPeter Qiu <zqiu@google.com>2015-09-25 13:20:23 -0700
commitfc98057995ef9c9cc8dda720aa7e0e30d1b34d8e (patch)
tree544c4977a641a666532f43e7d1395bf97ec04cc8
parent7a420d3e06aa7fb5eba305dc587624eb58bde7b7 (diff)
downloadapmanager-fc98057995ef9c9cc8dda720aa7e0e30d1b34d8e.tar.gz
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
-rw-r--r--dhcp_server.cc9
-rw-r--r--hostapd_monitor.cc6
-rw-r--r--init.apmanager.rc5
-rw-r--r--service.cc9
4 files changed, 29 insertions, 0 deletions
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.