Wilber Watch

Wilber está de olho. Uma pequena janela para o que vai dentro do JS.

2011-02-11

O sistema Android e a (falta de) liberdade

respondendo a um amigo:
Re: @gwidion Sugere algum link sobre "grau de liberdade" do android? Preciso saber mais sobre isso...


Então -- não achei nenhum link sumarizando a situação em Português -- melhor escrever:

O Android é um ambiente operacional tendo o Linux como núcleo. Como plataforma de dispositivo móveis para os fabricantes de celulares e operadoras, ele é Livre, como sempre entendemos Software Livre: essas empresas podem pegar toda a pilha de componentes: núcleo, drivers, máquina virtual para aplicativos, bibliotecas, APIs, aplicações e personalizar o que quiserem, sem pagar nada de royalties seja para o Google, seja para a a OpenHandset Alliance (a personalidade jurídica que realmente controla o Android - é formalmente distinta do Google e tem mais participantes como a Telefònica e a Nextel[1], o que a maioria das pessoas não sabe)

Agora, o que acontece coma maioria dos dispositivos Android é que a liberdade que os fabricantes/operadoras tem não se estende aos usuários finais. Sendo um ambiente computacional robusto e seguro, se as operadoras não derem a chave para o aparelho para o usuário final, ele fica "trancado para fora" de seu próprio hardware. E essa tranca pode ser bem limitadora, variando de modelo para modelo, e de operadora para operadora.

Alguns modelos/operadoras permitem que o usuário tenha acesso de "root" ou possam simplesmente instalar um outro sistema operacional (inclusive uma versão destravada do Android) no aparelho. Mesmo nesses aparelhos, o usuário que assim proceder tem que abrir mão de sua garantia do aparelho (o que me causa estranheza: poucos mal-usos pelo software poderiam causar uma falha de hardware no aparelho. Certamente é possível se o usuário acessar funções de baixo nível dos subsistemas que geram ondas eletromagnéticas - mas mesmo nos aparelhos mais abertos, esses subsistemas estão num firmware fechado, que só permite chamadas de API de alto nível)

É difícil conseguir informação sobre quais sistemas são abertos - por exemplo,
a página da WikiPedia que compara dispositivos Android não fornece esta informação[2]. A desinformação de fato é tão grande que mesmo sistemas em que o procedimento para acesso a root, mesmo em sistemas em que isso é oficialmente permitido, é descrito como se fosse um processo ilegal que foi conseguido a revelia do fabricante (como em [3], sobre o Nexus 1). Oficialmente o google fala das possibilidades que se tem quando você tem acesso como root [4].

Os dispositivos travados sofreram um processo chamado de TIVOização (termo cunhado pela Free Software Foundation depois do primeiro dispositivo famoso que fez isso - o TIVO): você tem Software Livre rodando no sistema, a licença diz que você pode ter o código fonte do sistema - e você pode: se pedir ao fabricante o código fonte de toda a pilha de aplicativos executada, eles tem que te fornecer (exceto APPs do fabricante que podem ser privativos) - e você pode alterar o código, implementar melhorias,e a té compila-lo para rodar no seu aparelho - como acontece com Software Livre "normal". Só que você não tem os privilégios necessários para colocar o software que você modificou no seu próprio aparelho.

Os fabricantes clamam que a Licença GPL versão 2.0 usada no Linux permite isso - há controvérsia no assunto - afinal, qual o ponto de você poder criar modificações num software que você não pode executar - mas tanto quanto eu saiba, não houve nenhum caso judicial de repercussão alegando que a TIVOização viola a GPLv2.0 (Nem nenhum caso dizendo que não viola). Na minha opinião é uma violação direta, e todos os dispositivos com Linux que não permitem a instalação de software pelo usuário final são simplesmente "piratas". E esse é o caso com a maioria dos Android. Vale lembrar que a nova versão da GPL, a 3.0, explicitamente proíbe essa prática e não há interpretação ambígua possível. Como o conjunto de ferramentas do GNU/Linux (glibc, etc...) migrou para a nova licença, você não encontra o equivalente a distribuições desktop Linux recentes TIVOizados - mas o Android não instala essas outras partes do sistema, restringindo-se ao Kernel Linux. Os demais complementos fazem parte de sua própria pilha de aplicações e são licenciados a parte.

É interessante notar que para a maioria dos desenvolvedores do Kernel Linux, essa situação é bastante confortável, afinal atende os interesses das empresas que os bancam. Melhorias no sistema continuam, obrigatoriamente, tendo que ser contribuídas de volta ao sistema como um todo. Só os direitos do usuário final é que são completamente suprimidos.

Por fim, alguns dos dispositivos travados podem ser acessados através de técnicas de jailbreak: isso é o usuário final consegue acesso de root usando alguma falha de segurança não prevista pelo fabricante e contra a vontade desse. Essa é a única forma de ter controle sobre seu telefone em plataformas fechadas como o iPhone e o Windows Phone (qualquer versão). Mas conseguir controle via jailbreak não quer dizer nada - é ser conivente com as restrições, e egoísta - "quem se importa se os outros não tem acesso aos seus dispositivos? eu tenho e está bom" - se esquecendo de e que quando o jailbreak falhar, todos os outros que ele deixou pelo caminho, já não poderão apoiá-lo. (O próprio termo "jailbreak" : fuga da jaula já descreve bem a história toda: o dispositivo estava "enjaulado" e teve que ser "solto")

Existe um outro nível de acesso em que a plataforma Android em média é bem menos restritiva que as plataformas privativas: na maior parte dos dispositivos Android - mas não em todos - de novo, depende do modelo e operadora - você pode instalar aplicativos diretamente - sem precisar baixa-los a partir de uma app-store oficial. Esse tipo de acesso não viola garantias,e permite pelo menos algum controle sobre um dispositivo que é seu.

Como o kit de desenvolvimento de aplicativos é Livre e Gratuito, com essa liberdade, pelo menos você pode desenvolver seus próprios aplicativos e/ou melhorar outros aplicativos livres sem pedir licença para ninguém. Infelizmente alguns fabricante não dão nem essa liberdade a não ser que você faça um jailbreak. A alternativa é criar o aplicativo e testa-lo no emulador em um PC e homologa-lo para que fique disponível a partir da APP store da operadora. O custo monetário e do trâmite legal para isso é variável.

Em resumo: o Android, do ponto de vista do usuário, é uma plataforma fechada, as vezes com um eco-sistema tão fechado quanto o do iPhone

Se alguém tiver uma listagem de quais dispositivos/operadoras permitem (A) Acesso Root, e (B) instalação de aplicativos por parte do usuário, eu agradeço.


[1] http://www.openhandsetalliance.com/oha_members.html
[2] http://en.wikipedia.org/wiki/Comparison_of_Android_devices
[3] http://www.talkandroid.com/guides/google-nexus-one-root-access/
[4] http://www.androidcentral.com/rooting-it-me-some-qa

4 Comments:

At 2:06 PM, Anonymous wille said...

Bem esclarecedor! Você devia escrever mais vezes aqui!

abraços,

 
At 6:09 PM, Anonymous Anônimo said...

JS,
Excelente texto! Estou citando ele aqui: http://www.buys.net.br/?p=94.
Ajude a formar opinião sobre o apoio do governo aos tablets.

 
At 12:55 PM, Anonymous Klaver said...

O CyanogenMod não seria uma possível alternativa neste embrólio da falta de liberdade?

 
At 12:59 PM, Blogger jsbueno said...

Klaver:
Então esse CyanogenMod é importantíssimo -- mas ele não resolve nada se os fabricantes dos aparelhos não permitirem que você troque o sistema do seu. Se permitirem, você instala essa distribuição que preserva as liberdades do usuário. Senão, o problema permanece.

 

Postar um comentário

<< Home