#!/usr/bin/python import sys import dbus if (len(sys.argv) >= 2 and len(sys.argv) < 4 and sys.argv[1] == "wifi"): print "Usage: %s wifi [SSID] [passphrase] [hidden]" % (sys.argv[0]) print "Example:" print "Create the open system access point:" print "%s wifi abcd \"\"" % (sys.argv[0]) print "Create the security access point:" print "%s wifi abcd 123456789" % (sys.argv[0]) print "Create the hidden access point:" print "%s wifi abcd 123456789 hidden" % (sys.argv[0]) print "Create the open and hidden access point:" print "%s wifi abcd \"\" hidden" % (sys.argv[0]) sys.exit(1) elif (len(sys.argv) < 2): print "Usage: %s type" % (sys.argv[0]) sys.exit(1) bus = dbus.SystemBus() manager = dbus.Interface(bus.get_object('net.connman', "/"), 'net.connman.Manager') def technology_enable_tethering(path, tech_type, ssid, psk, hidden): tech = dbus.Interface(bus.get_object("net.connman", path), "net.connman.Technology") properties = tech.GetProperties() for key in properties.keys(): if key in ["Type"]: if properties[key] == tech_type: if len(ssid) > 0: tech.SetProperty("TetheringIdentifier", ssid) tech.SetProperty("TetheringPassphrase", psk) if tech_type == "wifi": if len(hidden) > 0: if hidden == "hidden": tech.SetProperty("Hidden",dbus.Boolean(1)) else: tech.SetProperty("Hidden",dbus.Boolean(0)) else: tech.SetProperty("Hidden",dbus.Boolean(0)) print "Enabling %s tethering" % tech_type tech.SetProperty("Tethering", dbus.Boolean(1)) return tech_type else: return None technologies = manager.GetTechnologies() tech = None for path,_ in technologies: if (len(sys.argv) == 5): tech = technology_enable_tethering(path, sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]) elif (len(sys.argv) == 4): tech = technology_enable_tethering(path, sys.argv[1], sys.argv[2], sys.argv[3], "") else: tech = technology_enable_tethering(path, sys.argv[1], "", "", "") if tech != None: break; if tech == None: print "Failed to enable %s tethering" % (sys.argv[1])