Android / linux ignora o sinalizador setuid

3

Estou tentando obter acesso root ao meu tablet x86 chinês. Com adb eu tenho raiz. Copiei um binário "sh" e defini o bit setuid e, a partir do adb, ele funciona como esperado:

1|shell@x98air3g_c5j8:/ $ which su.sh
/system/xbin/su.sh
shell@x98air3g_c5j8:/ $ ls -al /system/xbin/su.sh
-rwsr-sr-x root     shell      395004 2016-01-02 17:39 su.sh
shell@x98air3g_c5j8:/ $ mount | grep system
/dev/block/by-name/system /system ext4      ro,seclabel,noatime,data=ordered 0 0
shell@x98air3g_c5j8:/ $ su.sh
# 

No entanto, quando o mesmo binário é invocado via tablet (no emulador de terminal) ele não mantém privilégios de root (o bit setuid parece ignorado). Apenas a concha normal.

O que está impedindo que o bit setuid funcione? Não há sinalizadores de montagem "nosuid" e tentei desativar o selinux com "setenforce permissive".

    
por Miha 04.01.2016 / 22:28

2 respostas

2

A partição / system é montada com a opção "nosuid", impedindo que aplicativos Android executem programas setuid. Você pode desmontar e montar novamente com a opção suid:

adb shell mount -o rw,remount /system
    
por 05.05.2016 / 18:13
0

link

A partição / system é agora montada nosuid para processos gerados por zigotos, impedindo que aplicativos Android executem programas setuid.

    
por 19.07.2016 / 07:52