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.logque 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 /tmptiene un bit fijo. Si empiezo adb adb nodaemon serverhaciendo 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.logun archivo, por ejemplo ~/tmp/adb.log.
Nuevamente, no soy root en el servidor, por lo tanto chroot, mount -o rbindy chmodno 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 servercon nohupy redirección de la salida, pero la cuestión general sigue siendo relevante.
LD_PRELOADtrucos, aunque eso sería más complicado.
/home/$USER/tmp/adb.logy reconstruir adb :)
/tmp/adb.log, o incluso montar su propio archivo privado/tmp. hacerman unshareyman namespacesyman nsenter.