Estou tentando executar o ADB em um servidor Linux com vários usuários onde não sou root (para jogar com o meu emulador Android). O daemon adb grava seus logs no arquivo /tmp/adb.log
que infelizmente parece estar codificado no ADB e essa situação não vai mudar .
Então, adb não está a prazo, dando o erro óbvio: cannot open '/tmp/adb.log': Permission denied
. Este arquivo é criado por outro usuário e /tmp
possui um adesivo. Se eu iniciar o adb adb nodaemon server
fazendo com que ele escreva para stdout, nenhum erro ocorrerá (eu também configurei sua porta com um valor exclusivo para evitar conflitos).
Minha pergunta é: existe alguma maneira de fazer o ADB gravar em outro arquivo /tmp/adb.log
? De maneira mais geral, existe uma maneira de criar uma espécie de link simbólico específico do processo? Quero redirecionar todos os acessos de arquivos /tmp/adb.log
para, digamos, um arquivo ~/tmp/adb.log
.
Novamente, eu não sou raiz no servidor, por isso chroot
, mount -o rbind
e chmod
não são opções válidas. Se possível, gostaria de não modificar as fontes do ADB, mas certamente se não houver outras soluções, farei isso.
PS Para o caso específico ADB posso recorrer a correr adb nodaemon server
com nohup
e redirecionamento de saída, mas a questão geral ainda é relevante.
LD_PRELOAD
truques, embora isso seja mais complicado.
/home/$USER/tmp/adb.log
e reconstruir adb :)
/tmp/adb.log
ou até montar seu próprio privado/tmp
. façaman unshare
eman namespaces
eman nsenter
.