Estoy tratando de ejecutar ADB en un servidor Linux con múltiples usuarios donde no soy root (para jugar con mi emulador de Android). El adb daemon escribe sus registros en el archivo /tmp/adb.log
que desafortunadamente parece estar codificado en ADB y esta situación no va a cambiar .
Por lo tanto, el BAD está fallando a plazo, dando el error obvio: cannot open '/tmp/adb.log': Permission denied
. Este archivo es creado por otro usuario y /tmp
tiene un bit fijo. Si empiezo adb adb nodaemon server
haciendo que escriba en stdout, no se producen errores (también configuro su puerto en un valor único para evitar conflictos).
Mi pregunta es: ¿hay alguna forma de hacer que ADB escriba en otro archivo que no sea /tmp/adb.log
? En términos más generales, ¿hay alguna manera de crear una especie de enlace simbólico específico del proceso? Quiero redirigir todos los accesos a /tmp/adb.log
un archivo, por ejemplo ~/tmp/adb.log
.
Nuevamente, no soy root en el servidor, por lo tanto chroot
, mount -o rbind
y chmod
no son opciones válidas. Si es posible, me gustaría no modificar las fuentes ADB, pero seguramente si no hay otras soluciones, lo haré.
PD: Para el caso específico de ADB que se puede recurrir a correr adb nodaemon server
con nohup
y redirección de la salida, pero la cuestión general sigue siendo relevante.
LD_PRELOAD
trucos, aunque eso sería más complicado.
/home/$USER/tmp/adb.log
y reconstruir adb :)
/tmp/adb.log
, o incluso montar su propio archivo privado/tmp
. hacerman unshare
yman namespaces
yman nsenter
.