编程动态修改iOS http代理

2019-01-06  本文已影响0人  超哥__

环境:当然是越狱后才有可能!!!
经过研究,发现iOS系统设置会将配置写入/Library/Preferences/SystemConfiguration/preferences.plist,而系统服务和设置进程本身会根据该文件进行同步。所以定期检查&修改该文件即可实现所有iOS系统设置

下面是实际代码python:

def changeproxy(paramdict):
    '''
        proxymode: close | manual:proxyhost+proxyport | auto:proxyurl
    '''
    ssh_scp_get('/Library/Preferences/SystemConfiguration/preferences.plist', 'preferences.plist')
    preferences = readPlist('preferences.plist')
    currentset = preferences['CurrentSet'].replace('/Sets/', '')
    service_en0 = ''
    serviceorder = preferences['Sets'][currentset]['Network']['Global']['IPv4']['ServiceOrder']
    for service in serviceorder:
        devicename = preferences['NetworkServices'][service]['Interface']['DeviceName']
        if 'en0' == devicename:
            service_en0 = service
    serviceobj = preferences['NetworkServices'][service_en0]
    if paramdict['proxymode'] == 'close':
        serviceobj['Proxies'] = {
            'FTPPassive': 1, 
            'ExceptionsList': [
                '*.local', 
                '169.254/16'
            ]
        }
    elif paramdict['proxymode'] == 'manual':
        serviceobj['Proxies'] = {
            'HTTPProxy': paramdict['proxyhost'], 
            'HTTPPort': paramdict['proxyport'], 
            'HTTPSProxy': paramdict['proxyhost'], 
            'HTTPSPort': paramdict['proxyport'],
            'HTTPEnable': 1, 
            'HTTPSEnable': 1, 
            'FTPPassive': 1,
            'ExceptionsList': [
                '*.local', 
                '169.254/16'
            ]
        }
    elif paramdict['proxymode'] == 'auto':
        serviceobj['Proxies'] = {
            'FTPPassive': 1, 
            'ExceptionsList': [
                '*.local', 
                '169.254/16'
            ], 
            'ProxyAutoConfigEnable': 1, 
            'ProxyAutoConfigURLString': paramdict['proxyurl']
        }
    writePlist(preferences, 'preferences.plist', binary=True)
    ssh_scp_put('preferences.plist', '/Library/Preferences/SystemConfiguration/preferences.plist')
上一篇下一篇

猜你喜欢

热点阅读