| #!/usr/bin/python | |
| import sys | |
| import dbus | |
| if (len(sys.argv) >= 3 and len(sys.argv) != 4 and sys.argv[1] == "wifi"): | |
| print "Usage: %s wifi [SSID] [passphrase]" % (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): | |
| 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) | |
| if len(psk) > 0: | |
| tech.SetProperty("TetheringPassphrase", | |
| psk) | |
| 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) == 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]) |