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.

hortstu
fonte
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.

Izzy
fonte
@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.

Skippy
fonte
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.

Lie Ryan
fonte
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