Eu realmente espero que esta não seja a melhor resposta: parece complicada no caso simples, e ainda mais se permitir um SSID binário. De qualquer forma, aqui vai:
Obtenha a conexão atual do dispositivo
nmcli -t -f GENERAL.CONNECTION --mode tabular device show $DEVICE | head -n1
-t
é necessário, pois há um espaço anexado no final, caso contrário (!?).
Mostrar status atual de medição
nmcli -f connection.metered connection show $CONNECTION
Onde $CONNECTION
é a string retornada pelo comando anterior.
Alterar status de medição
Os status válidos são yes
, no
e unknown
. unknown
é o padrão, que fará a adivinhação com base em itens como a opção DHCP ANDROID_METERED
(reference) .
Exemplo: defina $ CONNECTION para ser medido:
nmcli connection modify $CONNECTION connection.metered yes
Permitindo SSIDs binários
Para fazer isso "certo" (permitindo 32 octetos arbitrários no SSID), você precisará usar o GENERAL.CON-PATH
:
nmcli -t -f GENERAL.CON-PATH --mode tabular device show DEVICE | tail -n1
Isso retornará uma string como: /org/freedesktop/NetworkManager/ActiveConnection/39
Em seguida, use este caminho para obter o GENERAL.CON-PATH
da conexão . NB: isso tem um valor diferente ( CON-PATH
da conexão de% co =% do dispositivo)
nmcli -t -f GENERAL.CON-PATH -m tabular connection show apath /org/freedesktop/NetworkManager/ActiveConnection/39
Isso retornará uma string como: GENERAL.DBUS-PATH
(note no /org/freedesktop/NetworkManager/Settings/5
). Isso pode ser usado para modificar a conexão:
nmcli connection modify /org/freedesktop/NetworkManager/Settings/<NUMBER> connection.metered <VALUE>