devmem: não pode abrir '/ dev / mem': Permissão negada

1

Eu tenho dois telefones (Samsung Galaxy S4 LTE I9505, Android 4.4.2 Kitkat) que eu já fiz o root e tenho acesso root aos telefones. Anteriormente, no meu root do Samsung Galaxy S3 LTE I9505 com o Android 4.1.2 Jelly Bean, eu consegui obter partes da memória do dispositivo através do diretório / dev / mem.

Estou interessado em fazer com que a parte do Kernel Code do RAM faça alguma engenharia reversa do kernel em execução do telefone, e eu sei exatamente o alcance do endereço onde o código do kernel está localizado (através do uso de cat / proc / iomem ). No entanto, no 2 S4 executando o Kitkat 4.4.2, quando estou usando o shell adb (com su), não consigo ver / dev / mem montado no telefone. Quando tento usar 'cat / dev / mem' ou 'busybox devmem 0x80208000' recebo um erro de permissão negada.

No entanto, quando estou usando o ES File Explorer com o Root Explorer ativado, consigo ver mem e kmem dentro de / dev. Alguém sabe como lidar com esse problema? Eu preciso ter acesso ao / dev / mem com o comando devmem do busybox para editar a memória em tempo real.

Saída de 'cat / dev / mem':

1|root@jflte:/ # cat /dev/mem | wc                                             
tmp-mksh: cat: /dev/mem: Permission denied
    0         0         0

Saída do 'busybox devmem':

root@jflte:/ # busybox devmem 0x80208000 16
devmem: can't open '/dev/mem': Permission denied
    
por csharpnewbie 09.07.2014 / 03:42

1 resposta

1

Como no 4.4.2 (pelo menos no Samsung S4), o Selinux está definido como Enforcing, o que faz com que você não consiga listar o / dev / mem ou mesmo lê-lo.

Desde que você tenha enraizado o telefone, a partir do shell do ADB, vá para 'su' e use o comando 'getenforce', ele deve retornar com 'Enforcing'. Você pode temporariamente desabilitar o Selinux usando 'setenforce 0', que mudará o modo Selinux para Permissive e você poderá ler ou listar / dev / mem

    
por 09.07.2014 / 03:56