Як я можу отримати доступ до декількох просторів користувачів через adb?


9

Я запускаю KitKat на планшеті з двома користувачами: основним (власником) та вторинним. Мені потрібно отримати доступ до файлу, створеного додатком другого користувача.

Коли я підключаю планшет до свого (Ubuntu) робочого столу через USB, він монтується як медіа-пристрій (MTP) і показує мені базову папку для активного користувача. [1] Але потрібний мені файл знаходиться в іншому місці, тому я з'єднався з командного рядка через adb shell.

Підключення через ADB дає мені доступ до більш глибоких папок ( /mnt /procтощо), але я не зміг знайти файл там, де я його очікував [2], тому я /sdcardвсе-таки заглянув . На моє здивування, я визнав вміст базовою папкою облікового запису власника, незважаючи на те, що поточний активний користувач є другорядним користувачем.

Це також говорить мені про те, що, якщо мені колись доведеться, я не зможу отримати доступ до базової папки для другорядного користувача через adb shell.

Як я можу отримати доступ до планшета adb shellяк другого користувача, а не основного (власника) користувача? (Можливість доступу до файлів другого користувача досить хороша.)

[1] Я не впевнений, який тут належний термін. Я маю на увазі папку з Android, Завантаження та Зображення, характерну для конкретного користувача.

[2] FWIW Я експортую файл OPML з Flym . Flym повідомляє, що експорт OPML генерується у, /storage/emulated/10/Flym_123456789.opmlале я можу отримати лише настільки, що /storage/emulated- не існує виклику підпапки 10, лише legacyтака як /sdcard(основна папка основного / власника, а не базова папка другого користувача).


Для тих, хто опиняється на цій публікації з тим же чи подібним випуском, див. Як я можу отримати доступ до емульованої sdcard для іншого користувача у вкоріненому зв’язку 10
Firelord

Відповіді:


3

Місця legacy/розташування завжди вказують на дані активного користувача. Дозвольте спершу вказати на кілька пов’язаних питань / відповідей, які явно стосуються цих проблем для зберігання багатьох користувачів:

Отже, щоб знайти файли другого користувача:

  • перелічити підкаталоги /data/mediaта/storage/emulated
  • обмежте свій пошук підкаталогами, назви яких просто "числа"
  • що 0кандидати належать власнику, вищі числа вторинних користувачів
  • зовнішнє сховище дещо інше: /sdcard/0вказує на внутрішню sdcard, тоді як /sdcard/1має бути зовнішньою (якщо є). Аналогічно для зберігання, доданого через OTG

Пам’ятайте, що вам може знадобитися мати root, щоб отримати доступ до даних іншого користувача, крім того, який зараз активний на пристрої.

Також дивіться:


це допомагає мені зрозуміти, що я повинен бачити, але те, що я насправді бачу, це просто / зберігання / емуляція / спадщина (без числових папок), і я не маю доступу до / даних / медіа (дозвіл відмовлено) - я спробую перезапуск і ніколи не входити в систему як власник
david.libremone

Як я писав: "вам може знадобитися корінь" (що пояснює "відмову в дозволі"). Ваш пристрій укорінений?
Izzy

це не (трохи налякано, здається, що немає надійного процесу?)
david.libremone

але я можу підтвердити це: перезавантажте пристрій, не входьте як власник, увійдіть як вторинний, підключіть usb, доступ через MTP: бачити вторинну папку користувача, доступ через оболонку adb: бачити / зберігати / емулювати / спадщину як власник користувача (не другорядний користувач) - жодна інша папка не відображається під / зберігання / імітується
david.libremone

Увійшовши в систему з другорядним користувачем, він emulated/повинен вказувати на дані вторинного користувача. Немає доступу до всіх без root. І правильно, немає офіційного процесу для кореневого використання вашого пристрою; ви можете перевірити наш вкорінений тег-вікі та індекс вкорінення, щоб перевірити, чи є генерали та ваш пристрій. Якщо немає в списку, ласкаво просимо поставити нове запитання для цього.
Іззі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.