Sto cercando di eseguire ADB su un server Linux con più utenti in cui non sono root (per giocare con il mio emulatore Android). Il demone adb scrive i suoi log nel file /tmp/adb.log
che sfortunatamente sembra essere hardcoded in ADB e questa situazione non cambierà .
Quindi, adb non riesce a correre, dando l'errore evidente: cannot open '/tmp/adb.log': Permission denied
. Questo file viene creato da un altro utente e /tmp
ha un po 'di sticky on. Se inizio adb adb nodaemon server
facendolo scrivere su stdout, non si verificano errori (ho anche impostato la sua porta su un valore univoco per evitare conflitti).
La mia domanda è: c'è un modo per far scrivere ADB su un altro file di /tmp/adb.log
? Più in generale, esiste un modo per creare una sorta di link simbolico specifico del processo? Voglio reindirizzare tutti gli accessi ai file /tmp/adb.log
, dicendo, un file ~/tmp/adb.log
.
Ancora una volta, non sono root sul server, quindi chroot
, mount -o rbind
e chmod
non sono opzioni valide. Se possibile, mi piacerebbe non modificare le fonti ADB, ma sicuramente se non ci sono altre soluzioni, lo farò.
PS Per il caso ADB speciali Io può ricorrere a correre adb nodaemon server
con nohup
e il reindirizzamento di uscita, ma la questione generale è ancora rilevante.
LD_PRELOAD
trucchi, anche se sarebbe più complicato.
/home/$USER/tmp/adb.log
e ricostruire adb :)
/tmp/adb.log
, o addirittura montare il suo privato/tmp
. fareman unshare
eman namespaces
eman nsenter
.