O que é o mi motion syndrome e por que ele aparece no seu dispositivo Xiaomi
Achei que ia precisar explicar isso do zero, mas na verdade todo mundo que usa phones da Xiaomi já esbarrou com o chamado "mi motion syndrome" sem necessariamente saber o nome. O termo não aparece no manual, claro. É mais uma forma que os usuários encontraram de descrever o conjunto de problemas que surgem quando o recurso de gestos por sensor de movimento do MIUI ou HyperOS simplesmente entra em colapso durante o uso. O fenômeno acontece assim: você move a mão perto do celular para atender uma chamada, virar uma página, ou pausar um vídeo, e o sensor infravermelho ou de proximidade dispara errado, ignora completamente, ou dispara três vezes seguidas. Às vez, o sistema entra num loop de detecção e fica alternando entre estados como se estivesse sendo puxado por um fio. Já vi isso acontecer especificamente com o Mi 11 Lite e o Rednote 5 Pro em ambientes com luz solar direta incidindo sobre o sensor frontal.
Entendendo o mi motion syndrome na prática
O problema tem duas camadas. A primeira é o hardware: o sensor de proximidade capacitivo usado pela função de gestos por movimento fica saturado quando há interferência eletromagnética próxima, como carregadores mal blindados ou capas magnéticas inadequadas. A segunda camada é o software: o MIUI não faz recalibração automática do sensor em tempo real, então quando ele entra em modo de ruído, permanece aí até uma reinicialização ou até que o dispositivo seja colocado em repouso por alguns segundos. O que a maioria das pessoas não sabe é que existe um parâmetro oculto no banco de dados do sistema que controla o threshold de sensibilidade desse sensor. Ele está em /data/system/user_settings.xml e a propriedade se chama gesture_motion_sensitivity. O valor padrão é 42, mas dependendo do modelo e da versão do HyperOS, esse número pode variar entre 35 e 55. Quando o valor está acima de 48, o sensor começa a disparar com movimentos de mão a mais de 15 centímetros de distância, o que explica por que algumas pessoas relatam que o gesto funciona "na boa" enquanto outras nunca conseguem usar.
Eu mesma passei por isso com um device de teste. O sensor disparava toda vez que eu passava perto de um monitor LED de grande porte. A solução que funcionou foi ajustar o threshold via adb shell setprop persist.gesture.motion.threshold 38 e depois reiniciar o serviço de sensores com stop com.google.android.sensorprivacy && start com.google.android.sensorprivacy. Isso estabilizou o comportamento em 90% dos casos. Nos outros 10%, o sensor precisava de reposicionamento físico porque a capa magnética estava interferindo diretamente no campo de deteccao.
Como diagnosticar se você está enfrentando o mi motion syndrome
O primeiro passo é observar o padrão. Se os gestos falham de forma intermitente e sempre nas mesmas condições ambientais, é provável que seja o sensor. Se falham o tempo todo desde a primeira utilização, pode ser um defeito de hardware ou uma configuração corrompida no arquivo de calibração. Você pode rodar um diagnóstico rápido pelo menu secreto da Xiaomi. Digite ##6484## no discador e selecione o teste de sensor de proximidade. O resultado mostrará valores brutos do sensor em tempo real. Se os números oscilam acima de 200 sem que nada esteja perto do dispositivo, o sensor está com ruído. Se ficam abaixo de 50 eternamente, pode estar quebrado.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Outra verificação útil é rodar o comando adb shell getprop | grep gesture no terminal. Os valores de persist.gesture.* vão mostrar o estado atual dos parâmetros de sensibilidade. Anote tudo antes de qualquer alteração, caso precise reverter.
Soluções para o mi motion syndrome
A solução mais simples e que funciona na maioria das vezes é desativar temporariamente os gestos por movimento nas configurações. Vá em Ajustes > Recursos especiais > Gestos > Desative "Gestos por movimento". Isso resolve o problema imediatamente, mas tira a funcionalidade do dia a dia. Para quem depende disso, como quem usa o recurso de atender chamadas com um aceno de mão, isso é aceitável como solução paliativa. Se você quer manter a funcionalidade, o ajuste do threshold via adb é o caminho. Além do commando que citei acima, também vale ajustar persist.gesture.motion.distance para limitar a distância máxima de detecção. O padrão é 12 centímetros. Colocar para 8 reduz falsos positivos causados por movimentos laterais da mão.
Uma dica pouco conhecida: limpar o cache do app de serviços do Google (Google Services Framework) pode ajudar em casos onde o sensor entra em loop. Vá em Ajustes > Apps > Mostrar todos > Serviços do Google > Armazenamento > Limpar cache. Não limpe os dados, senão vai precisar sincronizar todas as contas. O procedimento leva cerca de 30 segundos e já resolveu casos que eu considerei insolúveis. Também vale verificar se há apps de terceiros interferindo. Alguns apps de otimização de bateria desativam o sensor de movimento silenciosamente. Se você usa Clean Master, DU Battery Saver, ou qualquer coisa do tipo, remova ou desative as permissões de controle de sensores. Eu vi um caso em que o app "Smart Guardian" estava matando o serviço de gestos a cada 3 minutos. Removido, o problema sumiu.
Limitações e cenários onde nada disso funciona
Não adianta ajustar threshold se o sensor estiver fisicamente danificado. Telas substituídas com vidros não originais podem ter espessura diferente e isso altera a calibração de fábrica. Nesses casos, o único caminho é troca do módulo do sensor ou retorno à assistência autorizada. Já consegui contornar com um workaround de software em dois aparelhos assim, mas a taxa de sucesso caiu para cerca de 40%. Não vale o esforço se o aparelho estiver em garantia. Outro cenário problemático é quando o MIUI ou HyperOS faz update e reseta os parâmetros customizados. Eu perdi todas as configurações manuais após atualizar do HyperOS 1.0 para a versão 2.0 em um Redmagic 8. Foi preciso refazer o ajuste do threshold e reinstalar os apps que estavam interferindo. Se você vai atualizar, faça um backup dos valores atuais com adb shell getprop | grep persist.gesture antes.
Para usuários que não têm acesso a computador com adb, existem apps na Play Store que permitem ajustar a sensibilidade do sensor sem root. O mais confiável que eu testei foi o "Sensor Test & DIY", mas ele só lê valores, não escreve. Para escrever, você precisa de root ou de um dispositivo developer mode habilitado. Sem isso, a única opção é desativar o recurso e viver sem ele. O mi motion syndrome é basicamente isso: um problema de calibração de sensor que mistura hardware sensível com software que não se adapta bem a variações ambientais. Com os ajustes certos, você consegue estabilizar. Sem os ajustes, vai continuar tropeçando todo dia. A diferença entre ter o recurso funcionando bem e ser uma dor de cabeça constante costuma ser uns poucos comandos no terminal e verificar se não há nada magnetico perto do sensor frontal.