Я намагаюся запустити ADB на сервері Linux з декількома користувачами, де я не root (щоб грати зі своїм емулятором Android). Демон adb записує свої журнали у файл, /tmp/adb.logякий, на жаль, здається, що він важко закодований в ADB, і ця ситуація не зміниться .
Таким чином, ADB не в змозі бігти, даючи очевидну помилку: cannot open '/tmp/adb.log': Permission denied. Цей файл створений іншим користувачем і /tmpмає клейкий біт. Якщо я починаю adb з того, adb nodaemon serverщоб він писав у stdout, помилок не виникає (я також встановлюю його порт на унікальне значення, щоб уникнути конфліктів).
Моє запитання: чи є якийсь спосіб змусити ADB писати в інший файл, ніж /tmp/adb.log?Загалом, чи є спосіб створити якусь символьну посилання, характерну для певного процесу? Я хочу перенаправити всі файли, до яких звертається, /tmp/adb.logдо, мовляв, файлу ~/tmp/adb.log.
Знову ж таки, я не root на сервері, так chroot , mount -o rbindі chmodне є дійсними параметрами. Якщо можливо, я хотів би не змінювати джерела ADB, але, безумовно, якщо інших рішень немає, я це зроблю.
PS Для конкретного випадку АБР я можу вдатися до управління adb nodaemon serverз nohupі перенаправленням виводу, але загальне питання по - , як і раніше актуальний.
LD_PRELOADхитрощі, хоча це було б складніше.
/home/$USER/tmp/adb.log
/tmp/adb.logабо навіть змонтувати його власний приватний файл/tmpвзагалі. робитиman unshareіman namespacesіman nsenter.