Como desinstalar um aplicativo do sistema usando o comando adb uninstall (NÃO remover via rm ou qualquer outra maneira)

12

Tem que mencionar isso para evitar possíveis confusões, esta questão não é duplicada. Esta pergunta é específica para usar o adb para desinstalar um pacote . Existem várias perguntas semelhantes, mas são todas diferentes desta, pois estão focadas em remover um aplicativo de qualquer maneira.

Por favor, não forneça respostas usando o comando "rm" para excluir os arquivos do pacote. Além disso, respostas relacionadas a nomes de pacotes malformados ou retornos de carro à direita. Eu acho que eles estão praticamente todos cobertos em todas as outras perguntas.

Eu tinha pm uninstallfuncionalidade, mas após a atualização da ROM. Algumas coisas não serão mais desinstaladas. Por exemplo, os dois aplicativos de sistema a seguir (removidos na ROM anterior, melhorando significativamente o desempenho geral):
/system/priv-app/SecurityCenter/SecurityCenter.apk=com.miui.securitycenter
/system/app/Updater/Updater.apk= com.android.updater

Agora, recebo um erro ao tentar desinstalá-los: Falha [DELETE_FAILED_INTERNAL_ERROR]

Mas outros aplicativos do sistema (que não são desinstalados por meio da interface regular do Android) são desinstalados por pm uninstallcomando. Exemplo:
/system/priv-app/Browser/Browser.apk=com.android.browser

Então, ambos são aplicativos do sistema, qual poderia ser a diferença entre eles?

Para referência, atualizei do MIUI 8.1.6.0 para 8.5.3.0 e reinstalei o TWRP e o SuperSU. Esta pergunta não é específica para minha ROM, pois vejo outras pessoas na mesma situação. Mas parece que tenho uma vantagem em poder desinstalar alguns aplicativos do sistema. E estou disposto a contribuir, encontrar uma solução para todos, desinstalar qualquer aplicativo.

Eu tentei: mount -o rw, remount / system,
mas isso não resolveu.

Por favor, ajude com todas as idéias ao longo do caminho. Obrigado!


Update 1 - Confirmando as etapas para evitar problemas intermitentes
* Limpe todas as partições no TWRP
* ROM instalada mais recente (MIUI 8.5.3.0)
* Volte ao TWRP, limpe apenas / Dados
* Restaurado / Dados da versão de backup da ROM que acompanha o dispositivo (MIUI 8.1.6.0)
* Agora, depois que eu inicializo no sistema operacional, a ROM aparece como a mais recente (MIUI 8.5.3.0) nas configurações

Agora consigo desinstalar todos os aplicativos que tentei. Até os mais resilientes: Google APP, Updater, Segurança.

Esse Frankenstein ... er, quero dizer, a ROM híbrida funciona bem até agora, e eu já removi muitos pacotes de sistema, tornando o telefone (Redmi 3S +) visivelmente mais rápido. Mas ainda gostaria de identificar o que estava causando isso na solução genérica . Então, se não está quebrado, estou disposto a quebrá-lo, e da próxima vez que quebrar, saberemos o que está causando e como corrigi-lo.

Update 2 -
* Limpou todas as partições e restaurou todas as partições da ROM original.
* Restaurado para as configurações de fábrica (usando TWRP)
* e após a inicialização na ROM, voltou ao TWRP e fez outro backup
* Utilizando o mesmo cenário da Atualização 1 acima, com exceção do uso de / Data a partir daqui. A desinstalação da pm não funciona.

Alguma opinião sobre as diferenças entre as duas partições / Data em que eu deveria me concentrar?

Emil
fonte
1
O AFAIK pm uninstallnão pode ser usado com aplicativos do sistema. Como não está claro se você realmente deseja desinstalar ou simplesmente ocultar um aplicativo (você mencionou pm disable), poderia pm hideser o que realmente está buscando?
Izzy
@ Izzy Sim, pode. É o que estou dizendo acima, apenas editei / deixei um pouco mais claro. Quero desinstalar, mas o que eu quis dizer foi que, antes da atualização, eu poderia fazer as duas coisas, desinstalar e desativar os aplicativos do sistema, até escrevi bons scripts para cuidar de tudo após a atualização.
Emil
Eu nunca tive sucesso com pm uninstallaplicativos do sistema. Mas tenho um palpite: sua ROM anterior é uma compilação de "engenharia"? Suponho que funcione com um eng build (também conhecido como dev build).
iBug 17/07/19
@ iBug não, na verdade a ROM anterior foi a que veio com este telefone. A nova ROM também é uma atualização oficial do site do fabricante.
Emil
1
@Firelord Minha configuração de otimização MIUI já estava desativada . device_owner.xml está ausente. device_policies.xml possui apenas estas linhas: <? xml version = '1.0' encoding = 'utf-8' autônomo = 'yes'?> <policy setup-complete = "true"> <active-password -stuff here- /> </policies>
Emil

Respostas:

18

Eu consegui adicionar as opções -k e --user ao comando pm , por exemplo:

pm uninstall -k --user 0 com.android.service

O comando foi emitido como raiz, sem necessidade de remontar / sistema como rw. O Android no telefone é 6.0 e o pacote é um aplicativo do sistema. Sem a opção extra, recebo o erro:

Failure [DELETE_FAILED_INTERNAL_ERROR]
RigacciOrg
fonte
1
Obrigado. Para qualquer pessoa que esteja lendo, alguns guias têm um único traço na frente do usuário, o que estava causando o erro para mim.
TrojanName
3

Também funciona sem a opção -k (manter as configurações do usuário):

pm uninstall --user 0 com.android.service

e sem abrir o shell adb:

adb uninstall --user 0 com.android.service
Andrei Karcheuski
fonte
atualizado do miui 10 para o miui 11. mas, para poucos sistema / aplicativo privado, essas cammands falham. por exemplo, para com.miui.calculator
srv_sud 24/01