Intereting Posts
Как я могу распаковать большой файл данных в AsyncTask.doInBackground? Android ADT 23.0.4 показывает Compile With: API21: Android 4.X (L Preview) Вместо API21: Android 5.0 Android. Есть ли способ получить платформу.pk8 и platform.x509.pem, с которой подписан rom? Подэкран Preference не открывается при использовании support.v7.preference WebView Cache не работает в Android 4.4 M_mainFrame-> editor () -> hasComposition не выдает Отладка отладки WebStorm не работает Отсутствует кнопка, размещенная после ListView Textview: использование стиля заголовка диалога: @android: style / TextAppearance.DialogWindowTitle PlaceAutocomplete получает неизвестный код статуса: 9000 Изменить цвет индикатора выполнения в android Как получить направление стрелка без использования карт google api Как разместить RecyclerView внутри NestedScrollView? Продолжайте получать NullPointerExceptions при попытке вызвать getWritableDatabase () Не может оценивать модуль «реагировать на собственные карты»: конфигурация с именем «по умолчанию» не найдена

Установите карту SD вручную из оболочки adb в android

У меня есть Android android 4.1 (Lenovo 820). После некоторых изменений, направленных на разделение внутреннего SD-плеера (который изменился, телефон больше не будет монтировать внешнюю SD-карту. Я хорошо разбираюсь в Linux, но я до сих пор не видел оболочку Android.

Я хотел бы знать шаги, чтобы:

  • Получить список доступных устройств, представляющих SD-карты
  • Ручная установка SD-карты – команда mount не будет работать, поскольку она говорит, что can't read /etc/fstab – как вы монтируете вещи?
  • Получить SDcard для монтирования во время загрузки

В моем /etc/system/vold.fstab:

 dev_mount sdcard /storage/sdcard0 emmc@fat /devices/platform/goldfish_mmc.0 /devices/platform/mtk-msdc.0/mmc_host dev_mount sdcard2 /storage/sdcard1 auto /devices/platform/goldfish_mmc.1 /devices/platform/mtk-msdc.1/mmc_host 

Гора теперь:

 rootfs on / type rootfs (ro,relatime) tmpfs on /dev type tmpfs (rw,nosuid,relatime,mode=755) devpts on /dev/pts type devpts (rw,relatime,mode=600) proc on /proc type proc (rw,relatime) sysfs on /sys type sysfs (rw,relatime) none on /acct type cgroup (rw,relatime,cpuacct) tmpfs on /mnt/secure type tmpfs (rw,relatime,mode=700) tmpfs on /mnt/asec type tmpfs (rw,relatime,mode=755,gid=1000) tmpfs on /mnt/obb type tmpfs (rw,relatime,mode=755,gid=1000) none on /dev/cpuctl type cgroup (rw,relatime,cpu) /emmc@android on /system type ext4 (ro,relatime,nobarrier,noauto_da_alloc,commit=1) /emmc@usrdata on /data type ext4 (rw,nosuid,nodev,noatime,nodiratime,discard,nobarrier,noauto_da_alloc) /emmc@cache on /cache type ext4 (rw,nosuid,nodev,noatime,nodiratime,discard,nobarrier,noauto_da_alloc) /emmc@protect_f on /protect_f type ext4 (rw,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered) /emmc@protect_s on /protect_s type ext4 (rw,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered) 

Solutions Collecting From Web of "Установите карту SD вручную из оболочки adb в android"

Не могу поверить, что никто не ответил вам через 2 месяца? Ничего себе … как слабый!

Ну, так или иначе, я хочу, чтобы я заполнил вам какую-то информацию, а также задал несколько вопросов. 1). У вас есть root-доступ или вы вытаскиваете системный vold из образа / прошивки релиза? Как Linux SuperUser права? 2). Если у вас есть права root / суперпользователи, как вы его получили? Я имею в виду, какой метод вы использовали для получения доступа root? Было ли это с помощью некоторых скриптов / двоичных файлов и известного эксплойта? Или это сверкнуло с помощью корневого ядра? Причина, по которой я спрашиваю, заключается в том, что root-доступ – это не просто доступ к корням, как и большинство людей; Существуют различные уровни доступа root. Например, у вас может быть полный корневой доступ как пользователь на устройстве, но пришло время, когда вы хотите удаленно манипулировать своей системой из командной строки вашего любимого дистрибутива Linux, тогда вы можете обнаружить, что корневой доступ не все, что он взломан быть. Если вы использовали эксплойт, а не ядро, то, скорее всего, у вас есть только корневой доступ на уровне системы, а ADB (мост отладки android) на ваш компьютер будут сталкиваться с различными сообщениями, такими как «доступ запрещен», «неспособный получить привилегии суперпользователя», Или «adb не может работать как root в производственных сборках» или что-то подобное этому. Причина, по которой это происходит, заключается в том, что в отличие от некоторых специализированных ядер ядра root через эксплойт не делает ядро ​​небезопасным. Я бы порекомендовал вам немного прочитать о том, что такое небезопасное ядро, и если оно подходит для того, чего вы надеетесь достичь. Причина, по которой я говорю, заключается в том, что на некоторых устройствах, имеющих ненадежное ядро, не является идеальным, поскольку он может вызывать некоторые нежелательные системные флаги (некоторые постоянные и необратимые в соответствии с некоторыми производителями) и используются против разработчиков, чтобы не соблюдать гарантию или как средство извлечения Деньги за премиальные услуги по ремонту устройств (независимо от того, хотите ли вы, что разработчик надеется сделать некоторые прорывы в открытиях … вызвал повреждение устройства или нет, какой sux). Я думаю, ваше устройство должно быть в порядке …? Но я не уверен на 100%, поэтому сделайте некоторые исследования.

Если вы обнаружите, что не можете запустить небезопасное ядро, это еще не конец света, для этого требуется немного больше работы, чтобы получить то, что вы хотите, что я подробно рассмотрю с примерами.

Следующее, что вы, вероятно, должны учитывать, – это то, что вы надеетесь сделать, когда получите то, на что хотите, на устройстве? Вы думали так далеко? Если это так, вы можете понять, что стандартная консоль / оболочка Android довольно мрачна и плохо оснащена инструментами для выполнения всех замечательных действий, которые вы могли сделать с мгновенным взглядом на ваш Linux-компьютер; Это означает, что вам понадобятся некоторые вспомогательные инструменты, такие как «busybox», а также, возможно, некоторые другие, например, если вы работаете с некоторыми базами данных, которые, вероятно, вам нужны sqlite3, вам, вероятно, понадобится фактический бинарный файл bash, чтобы расширить ваши Немного. Вы также хотели бы посмотреть не только на получение этих двоичных файлов, но и на то, где они должны быть расположены в вашей системе для упрощения доступа, иначе вы устанете печатать огромные длинные пути в консоли, чтобы достичь определенных областей вашего устройства Как ваша SD-карта. Вы будете знакомы с символическими ссылками, использующими Linux, но Android не отличается только тем, что большая часть системы Android использует контейнеры, такие как среда для приложений. Когда вы имеете дело с этим, могут возникнуть некоторые препятствия для преодоления, поскольку в системе есть проверки безопасности, чтобы попытаться остановить вторжение нежелательных третьих сторон. Именно это позволяет большинству разработчиков безопасно знать, что их (и ваши) персональные данные защищены, однако, когда это вы, и вы хотите войти в эти области устройства, вам нужно правильно настроить ваши инструменты. Большинство Android-мастеров используют модифицированное изображение восстановления (или пользовательское – не слишком отличающееся от концепции пользовательского ядра), которое позволяет им изменять систему, когда она отключена через средства в основном простого zip-файла со встроенным учебным скриптом, двоичным и Манифест (научные исследования, подписанные и неподписанные почтовые индексы для пользовательских реплик Android), я не буду подробно останавливаться на этом, но это важно). Вы могли бы по существу объединить все свои инструменты в один zip и «flash», чтобы установить компоненты в области требуемой системы и символизировать одни и те же файлы в других местах.

Давайте посмотрим на некоторые примеры теперь, скажем, у вас есть root-доступ, потому что вы использовали эксплойт на своем устройстве, но все же сохранили ядро: ro.debugable=0 kernel = ro.debugable=0 в вашем файле default.prop системы (сгенерированном во время загрузки и Не найден или не размещен в большинстве пакетов прошивки). Если вы хотите разрешить adb иметь root-доступ, вам понадобится изменить этот файл, и в частности строку, указанную выше. Могут также быть другие требования, поэтому вы должны изучить, что нужно вашему устройству, например, Galaxy Tab, который я исправляю на данный момент, старше, поэтому использует массовое хранилище вместо протокола передачи мультимедиа, поэтому мне нужно сообщить adb, чтобы соединение было открытым и твердым (Не время ожидания и отсоединение) при работе с устройством; Это происходит и через файл default.prop. Трудность возникает, когда вы хотите изменить этот файл; Большинство людей декомпилируют ядро ​​и ramdisk и редактируют его напрямую и перекомпилируют, а затем перетаскивают его на устройство в основном потому, что adb явно не имеет доступа к корню в настоящий момент. Вы можете вытащить файл из системы следующим образом:

 adb pull default.prop default.prop 

(То есть, если у вас есть adb на пути к среде дистрибутива ПК)

Это приведет вас прямо, только проблема в том, когда вы хотите вернуть ее после ее изменения, может быть довольно сложно. Различные решения касаются, я слышу много нажатия на SDcard /emmc/storage/sdcard0/default.prop или /tmp/default.prop, а затем требуя от вас как «SuperUser» на устройстве, используя что-то вроде эмулятора терминала, менеджера сценариев Или корневой проводник, чтобы вернуть файл на место и предоставить ему правильные разрешения.

Набрав adb remount на устройстве с защищенным ядром, вы сможете перемонтировать всю систему как чтение-запись, и вы можете делать все, что захотите. Если небезопасно, хотя вы можете сделать что-то вроде

 adb root remount 

Или вы можете найти, что вся ваша консоль не имеет прав суперпользователя, что так всегда, поэтому вам потребуется оболочка adb в оболочке устройства (там, где она или у вас есть права суперпользователя), а затем выполнение команд, которые вы хотите попробовать.

 adb shell su mount -o rw /system remount /system 

Недавно я обнаружил, что вы можете получить одинаковый уровень доступа через одну строку на консоли adb и один возвращающий ключ следующим образом:

 adb shell su -c mount -o rw,remount /system 

Это передает аргументы в одиночной строке adb shell -> superuser access -> pass command -> mount as read-write -> remount command -> в системный раздел.

Если вам нравится использовать указанную выше команду, чтобы получить права суперпользователя с консоли и эхо-строки в файл default.prop без необходимости декомпиляции ядра.

В моем случае я несколько раз повторял одни и те же команды и перезаписывал файл default.prop одним и тем же контентом, настраивая только определенные переменные по своему вкусу: обратите внимание, что первая строка использует только 1>, поэтому это эффективно стирает или перезаписывает default.prop Файл, поэтому остальная часть строк также должна следовать. Я использую 2> как >>, потому что это добавляется к следующей строке файла.

 adb shell su -c echo ro.secure=1>default.prop adb shell su -c echo ro.allow.mock.location=0>>default.prop adb shell su -c echo ro.debuggable=1>>default.prop adb shell su -c echo persist.sys.usb.config=mass_storage,adb>>default.prop adb shell su -c echo persist.service.adb.enable=0>>default.prop 

Это довольно быстро и эффективно для 4 или 5 строк кода, но это нецелесообразно, когда вы переписываете большой файл со многими строками теста. Вы можете захотеть взглянуть на такие вещи, как grep с функциями циклирования в сценарии bash, чтобы фильтровать определенные строки большого файла text / script / config, однако для этого примера и, вероятно, для вашего системного vold-файла это должно быть достаточно.

Я думаю, этого должно быть достаточно, чтобы (извините за каламбур). У вас достаточно информации, чтобы быть опасной 🙂 В этой заметке, пожалуйста, убедитесь, что у вас есть резервная копия вашего устройства, прежде чем вы начнете возиться с системой. Они очень похожи на Linux, но они тоже очень разные! Прислушайтесь к этому предупреждению, УБЕДИТЕСЬ, ЧТО ВЫ НАЗАДШЕЕ ВАШЕ ВРЕМЯ ПРОВЕРКИ EFS! Efs содержит номер устройства IMEI, и это то, что вы действительно не хотите повреждать или потерять. Я видел из первых рук, что может случиться; Вам даже не нужно случайно вызывать раздел EFS, чтобы его сломать … вам нужно только сделать ошибку, вызвав явный путь к неправильному разделу, и он может уничтожить ваш IMEI!