Quais são as diferenças entre um aplicativo do sistema e um aplicativo do usuário?

28

Como eu brinquei com diferentes ROMs e usei o Titanium Backup, vejo que os aplicativos são categorizados em aplicativos do sistema e do usuário. Vários desenvolvedores de ROM afirmam que o Titanium Backup deve ser usado apenas para aplicativos do usuário e não para aplicativos do sistema. Quando eu desinstalo os aplicativos do sistema, o TiBu me avisa que a ROM pode não funcionar corretamente.

Além do fato de que os aplicativos de usuário podem ser baixados via Market ou de algum outro meio, quais são as principais diferenças entre os dois?

O que há nos aplicativos do sistema que os tornam mais integrados ao próprio sistema operacional?

Chance
fonte

Respostas:

20

/systemé somente leitura sem raiz, impedindo a desinstalação de aplicativos de /system/appe /system/priv-app. Os aplicativos críticos são colocados lá para que não possam ser desinstalados. Bloatware de transportadora que eles não querem que você remova também é colocado lá. A última categoria de aplicativos pode ser removida se você estiver enraizado; o primeiro, nem tanto.

/system/priv-apptambém permite que aplicativos instalados lá usem signatureOrSysteme outras permissões privilegiadas. A resposta de Stephen tem alguns exemplos.

Quanto ao motivo pelo qual os aplicativos podem ser críticos, isso depende da ROM. O Sense da HTC depende muito de seus aplicativos integrados, pelo que ouvi, por exemplo. Eles simplesmente não projetaram sua interface do usuário de forma que funcionasse nativamente com aplicativos de terceiros (ou falharia bem se os aplicativos do sistema estivessem ausentes). Outros aplicativos são essencialmente parte do sistema operacional Android, mas o Google os codificou como aplicativos / serviços (provavelmente por motivos de encapsulamento e confiabilidade).

As atualizações de alguns aplicativos do sistema podem ser baixadas na Play Store, como o Google Maps. Se ele não foi pré-instalado como um aplicativo do sistema no seu dispositivo, você pode usar o Titanium para convertê-lo de um aplicativo do usuário para um aplicativo do sistema.

Matthew Read
fonte
isso também significa que um aplicativo do sistema não pode ser morto por assassinos de tarefas? ou que eles iniciariam automaticamente se mortos?
ashishsony
@ashishsony Os serviços do sistema normalmente são iniciados automaticamente, sim, mas (a maioria?) aplicativos / serviços ainda podem ser eliminados. Por exemplo, eu posso matar o navegador no meu dispositivo. (Aconselhamento Inserir habitual sobre como assassinos tarefa são ruins.)
Matthew Leia
Correto, os aplicativos do sistema nos dispositivos HTC (mesmo aqueles como Dropbox, Facebook) estão muito integrados à interface do usuário do Sense. É preciso abster-se de removê-los; a conversão de aplicativos do usuário para aplicativos do sistema não deve ser feita, a menos que seja muito necessário, pois em algumas ROMs eles podem não terminar em condições de pouca memória.
Ashesh Kumar Singh
1
@ todas as diferenças programáticas são: o aplicativo do sistema (aplicativo privado) recebe uma transmissão do sistema e é force_stop das configurações do aplicativo, quando o aplicativo não pertencente ao sistema (aplicativo do usuário) não pode receber a transmissão se for o force_stop das configurações do dispositivo.
Zala Janaksinh
22

As outras respostas estão corretas, mas não apontam algumas diferenças:

Permissões

Os aplicativos do sistema têm a capacidade de solicitar determinadas permissões somente do sistema que nunca estão disponíveis para os aplicativos do usuário. Esta é não o mesmo que permissões root / sudo / su.

One example that I know of and use daily is the ability to reset the missed call notification counter. I have Go Dialer, which is a replacement for the stock dialer and contact app (how you make phone calls). When I miss a call, android lets me know that with a notification. However, Go Dialer is not allowed to reset this counter, even though it asks for that permission when you install the app. Android 2.2 and earlier let user apps reset it, but made this permission a system-only accessible permission for android 2.3

Ao mover meu aplicativo Go Dialer para a partição do sistema, é permitido redefinir esse contador. A raiz não é necessária para o aplicativo (exceto, é claro, para realmente mover o aplicativo para a partição do sistema).

Outra permissão do sistema é a capacidade de definir o local atual do GPS. Agora, o Android tem uma preferência em que você pode permitir locais simulados, para que qualquer aplicativo de falsificação de GPS instalado possa declarar uma localização de GPS. Porém, se o aplicativo estiver na partição do sistema, os locais simulados podem ser desativados enquanto o aplicativo ainda falsifica o local dos gps.

Atualizações

Os aplicativos do sistema podem ser atualizados da mesma forma que os aplicativos do usuário, mas a atualização nunca é integrada à rom original. Ou seja, os aplicativos do sistema têm a capacidade exclusiva de reverter para a versão que existia quando a rom foi instalada pela primeira vez.

Mover para SD

O Android permite que os usuários movam useraplicativos da memória interna para o cartão SD. Os aplicativos do sistema não podem ser movidos e sempre ocupam algum espaço interno. A maioria dos dispositivos (todos?) Possui aplicativos de usuário internos em uma partição diferente, portanto, a desinstalação de um aplicativo do sistema não forneceria mais espaço para o aplicativo do usuário (exceto o dalvik-cache sendo removido).

Você recuperará algum espaço se desinstalar as atualizações de um aplicativo do sistema. Como observado, as atualizações não são integradas à rom e, portanto, são armazenadas no espaço do usuário. As atualizações também não podem passar para o cartão SD, mas, se removidas, o espaço do usuário é recuperado.

Como isso afeta você

Se você é um usuário casual do Android, provavelmente não encontrará cenários nos quais o aplicativo do sistema versus o usuário faria a diferença. Se você é um usuário avançado, provavelmente possui root e, portanto, pode alterar um aplicativo do sistema para usuário (e vice-versa) se alguma vez encontrar uma dessas situações.

Stephen Schrauger
fonte
1
Você quis dizer "Isso não é o mesmo que permissões root / su"? Eu me lembro disso sudoe sunão é o mesmo - pelo menos no Unix e Linux.
ChuongPham
Você está certo de que su e sudo são diferentes em * nix. Mas sudoé mais aplicável aqui, porque o sudo está pedindo privilégios de root, enquanto suestá simplesmente pedindo para Trocar de Usuário. Para usar su, você só precisa saber a senha da conta para a qual está trocando; se você não especificar uma conta, estará pedindo para se tornar root. No Android, no entanto, não há senha de root nem outras contas, assim sucomo o comando é conhecido pelos usuários para executar em um terminal para obter privilégios de root.
Stephen Schrauger
De qualquer forma, atualizarei a resposta para incluir su, já que é isso que alguns usuários do Android igualam à raiz.
Stephen Schrauger
4

Aplicativos do sistema são aplicativos incluídos no sistema. Eles estão localizados na pasta / system / app.

A grande maioria deles é necessária para fazer o dispositivo funcionar. Um exemplo de alguns deles é o discador, que configura toda a conectividade de rede, e o navegador, sem o qual nenhuma visualização na web do aplicativo funcionaria.

Liam W
fonte
1
O discador configura a conectividade de rede?
Mateus Leia
2
@MatthewRead Sim - sim! O 'Discador' real é uma atividade separada localizada no aplicativo discador. O dialer.apk é o aplicativo que configura a conectividade - se você quiser uma prova, congele os aplicativos de armazenamento de discador e discador, a rede não funcionará.
Liam W
Isso é muito estranho!
Matthew Leia
Android é estranho!
Liam W
3

Eu gostaria de adicionar algo nas respostas acima. Os aplicativos do sistema não podem ser excluídos em uma redefinição de fábrica completa, diferente dos aplicativos do usuário. Portanto, se você deseja excluir todos os seus arquivos pessoais, mas eles são muitos para serem excluídos convenientemente, uma redefinição de fábrica é apenas a mais conveniente e você tem os aplicativos que deseja manter, pode convertê-los em aplicativos do sistema para que eles saiam será apagado durante a redefinição de fábrica.

CCCP
fonte
1
Dica interessante! Eu quero passar a minha música para o sistema agora lol
FreeSoftwareServers
2

Outro recurso dos aplicativos do sistema é que eles usam bibliotecas nativas ( arquivos libsomething.so ) do diretório comum de bibliotecas do sistema (geralmente / system / lib ou / system / lib64 ), e não do diretório de bibliotecas particulares do aplicativo (por exemplo, / data /app/com.example.HelloJni/lib/arm ). Antes do Android Nougat, os aplicativos do usuário eram livres para carregar e usar as bibliotecas nativas do sistema. As restrições foram impostas posteriormente, consulte https://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk .

Alex Cohn
fonte