美文网首页Android研发利器
打造趁手的工具集(1):adb为Android手机设置代理

打造趁手的工具集(1):adb为Android手机设置代理

作者: 淡定小问题 | 来源:发表于2020-08-10 19:51 被阅读0次
高效的秘密武器:打造趁手的工具集

作为客户端研发人员,请求抓包,改请求参数和回调结果的需求非常常见。charles的请求代理和map local功能也非常方便,强大。but,给Android手机设置代理却是一个非常痛苦的事情。
1. 打开wiki设置
2. 长按高级配置
3. 查看本级ip
4. 输入ip,和端口
5. 保存退出
6. 回到刚才终端的场景

7. 我太南了

如果你也为上述问题所烦恼,通过adb命令给Android手机设置代理,可以解决你的问题。脚本我已经写好了,拿走不谢。

proxy

#! /usr/bin/env bash

PORT=8888

function get_proxy() {
    p="$1"
    if [[ -n "$p" ]]
    then
        echo "$p"
    else
        _ip=$(ifconfig en0 | awk '/inet /{print $2}')
        local_proxy="${_ip}:${PORT}"
        echo "$local_proxy"
    fi
}


# 设置代理
function adb_set_proxy() {
    p=$1
    m=$2
    _devices=$(adb devices | awk 'NF == 2{print $1}')

    for d in ${_devices}
    do
        adb -s ${d} shell settings put global http_proxy ${p}
        echo "${m}: <device: ${d}> <proxy: ${p}>  <status: $?>"
    done
}

function print_help() {
    command=$(basename $0)
    echo "============= Usage Demo ==========="
    echo "# 设置为本机代理"
    echo "${command} set"
    echo 
    echo "# 清除代理"
    echo "${command} clean"
    echo "${command} clear"
    echo "===================================="
}

# 命令分发
if [ -z $1 ]
then 
    print_help
    exit -1
fi

case "$1" in
    set      ) adb_set_proxy $(get_proxy "$2") "设置代理成功";;
    clea[rn] ) adb_set_proxy ':0' "清理代理成功";;
    *        ) echo "unkonwn command: ${1}"; print_help; exit -1;;
esac

相关文章

网友评论

    本文标题:打造趁手的工具集(1):adb为Android手机设置代理

    本文链接:https://www.haomeiwen.com/subject/brcrdktx.html