Como obtenho permissão para criar este arquivo em um shell Android?


8

Estou tentando fazer o root em um Kindle e estou preso. Obtenção de permissão negada e não sei como ou quais permissões alterar.

mike@Inspiron:~/Downloads/android-sdk-linux/platform-tools$ adb shell
shell@android:/ $ echo 'ro.kernel.qemu=1' > /data/local.prop
/system/bin/sh: cannot create /data/local.prop: Permission denied
1|shell@android:/ $ sudo echo 'ro.kernel.qemu=1' > /data/local.prop            
/system/bin/sh: cannot create /data/local.prop: Permission denied
1|shell@android:/ $ sudo
/system/bin/sh: sudo: not found
127|shell@android:/ $

Estou usando o Ubuntu 12.04 se isso faz diferença.


Eu consegui o root sem adquirir essas permissões. Obrigado por qualquer ajuda.
— hortstu

Respostas:


7

Resposta curta: você terá que fazer o root do seu dispositivo para isso.

Explicação: O shellusuário não tem permissão de gravação lá. O /datadiretório não é de propriedade shellnem o grupo deles corresponde: no meu Motorola Milestone 2, por exemplo, ele pertence system:systeme tem as permissões drwxrwxr-x, enquanto shellpertence shellapenas ao grupo. Somente em um dispositivo raiz, você pode alterar as permissões ou ter privilégio suficiente para substituí-las.

PS: No Android, o sudocomando é chamado simplesmente su- o que explica seu último erro ( /system/bin/sh: sudo: not found) caso o dispositivo já esteja enraizado.


@hortstu, se você achou útil, não hesite em votar (clique na seta "para cima" ao lado) ou, se ele resolveu seu problema misteriosamente, até aceite-o (o botão "marca de seleção"). Mas o que você decidir: Eu estou feliz que eu poderia ajudar :)
— Izzy

Eu adoraria, mas ainda não tenho reputação suficiente.
— hortstu

Opa ... Eu pensei pelo menos nas respostas da própria pergunta ... Bem, neste caso, desculpe pelo "material do professor". Agora você tem o representante :)
— Izzy

7

Tente o seguinte:

shell adb "cd / data / local && mkdir tmp"
shell adb mv / data / local / tmp /data/local/tmp.bak
shell adb ln -s / data / data / local / local / tmp
reboot adb


shell adb adb esperar para dispositivo rm /data/local.prop
shell adb "echo \" ro.kernel.qemu = 1 \ "> /data/local.prop"
reinicialização adb

Ao criar um link de para /datapara /data/local/tmp, o Android acreditará que você está escrevendo, /data/local/tmpmesmo que esteja escrevendo /data. Este método é realmente utilizado com sucesso raiz muitos dispositivos, embora alguns tenham especificamente no build.propque /data/tmpestá fora dos limites.

Esse método pode não funcionar com um Kindle Fire, embora eu não tenha tentado. Enraizei um Kindle Fire, mas ele envolvia um método completamente diferente. Primeiro, a recuperação do TWRP teve que ser atualizada. Em seguida, uma exploração de imagem de recuperação falsa. Em seguida, você pode obter acesso para copiar os binários su e busybox.

Você pode tentar o local.propmétodo como eu descrevi acima. É compatível com muitos dispositivos.


Obrigado pela ajuda. Eu consegui alcançar raiz. Por razões que não entendi, pulei algumas etapas do tutorial e funcionou perfeitamente.
— hortstu 6/02/2013

2

Você não seguiu as instruções de root corretamente.

http://rootzwiki.com/topic/34162-root-kindlefire-7hd-probably-the-other-2ndgen-kindlefire/

As instruções acima pedem que você crie links simbólicos para o diretório / data / a partir de / data / local / tmp /, o que tornaria o /data/local.prop gravável após uma reinicialização.

Siga as instruções com precisão, incluindo as reinicializações e tudo, e verifique todas as etapas para que não produzam mensagens de erro inesperadas.


Eu segui a instalação de enraizamento corretamente; estava apenas usando uma técnica de raiz diferente daquela à qual você se vinculou. Obrigado por sua ajuda, mas acabei conseguindo pular algumas etapas por razões que não entendi e enraíquei o Kindle.
— hortstu
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.