Я намагаюся запустити 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
.