Próbuję uruchomić ADB na serwerze Linux z wieloma użytkownikami, na których nie jestem rootem (aby grać z moim emulatorem Androida). Demon adb zapisuje swoje dzienniki do pliku, /tmp/adb.log
który niestety wydaje się być zakodowany na stałe w ADB i ta sytuacja się nie zmieni .
Więc adb nie udaje się uruchomić, co daje oczywisty błąd: cannot open '/tmp/adb.log': Permission denied
. Ten plik jest tworzony przez innego użytkownika i /tmp
ma trochę lepką wersję. Jeśli zacznę adb od zmuszenia adb nodaemon server
go do zapisu na standardowe wyjście, nie wystąpią żadne błędy (ustawiłem również jego port na unikalną wartość, aby uniknąć konfliktów).
Moje pytanie brzmi: czy jest jakiś sposób, aby ADB zapisał do innego pliku niż /tmp/adb.log
? Mówiąc bardziej ogólnie, czy istnieje sposób na stworzenie pewnego rodzaju dowiązania symbolicznego specyficznego dla procesu? Chcę przekierować wszystkie dostępy do plików /tmp/adb.log
, mówiąc, do pliku ~/tmp/adb.log
.
Znowu, nie jestem root na serwerze, tak chroot
, mount -o rbind
i chmod
nie są poprawne opcje. Jeśli to możliwe, nie chciałbym modyfikować źródeł ADB, ale na pewno, jeśli nie będzie innych rozwiązań, zrobię to.
PS W konkretnym przypadku ADB mogę skorzystać adb nodaemon server
z nohup
przekierowania i wyjścia, ale ogólne pytanie jest nadal aktualne.
LD_PRELOAD
sztuczki, choć byłoby to bardziej skomplikowane.
/home/$USER/tmp/adb.log
/tmp/adb.log
, a nawet zamontować własny prywatny plik/tmp
. zrobićman unshare
iman namespaces
iman nsenter
.