J'ai un script bash luks
que j'utilise dans Android pour le montage de périphériques chiffrés, qui peut être appelé dans un émulateur de terminal avec
su -c "luks ..."
Le script fonctionne bien pour la première partie, sauf au moment du montage, que dans le script je fais avec :
busybox mount /dev/mapper/${vol_arg} ${mount_path}
Malgré le fait que j'obtienne le code de sortie 0 avec cette commande, le périphérique n'est pas monté. La ligne de commande
su -c "mount /dev/mapper/${vol_arg} ${mount_path}"
ne fonctionne pas non plus dans l'émulateur de terminal alors qu'il ne montre aucune erreur ( df
ne montre pas le périphérique). Lorsque j'essaie de l'exécuter à nouveau, j'obtiens mounting failed: device or resource busy
. Si j'essaie alors
su -c "umount ${mount_path}"
Je reçois aussi cant't umount...: device or resource busy
. Qu'est-ce qui se passe ?
Cependant, le point vraiment étrange ici est que, si je SSH
sur la tablette comme Root avec le même émulateur de terminal, la commande
mount /dev/mapper/${vol_arg} ${mount_path}
monte le périphérique normalement ( ??!!). De plus, si j'exécute la commande
'luks ...'
comme SSHd Root, cela fonctionne aussi parfaitement, même en montant l'appareil.
Pourquoi le montage fonctionne-t-il s'il est exécuté en tant que racine SSH, et non par l'intermédiaire de l'ordinateur de l'utilisateur ? su -c
?
Encore plus étrange est le fait que le su -c
La chose fonctionne bien dans Samsung Android 4.1.2, mais pas dans Cyanogenmod 11 (4.4.2)...
Peut-être que les gens de Cyanogenmod ont introduit un bug moche ?
Des indices ?
Merci !
L.