Oneplus X - Android 6.0 не будет монтироваться

На самом деле различия между ними не так уж велики.

В типичной системе Unix или Linux существует менее пяти реальных исполняемых файлов. На Ubuntu это /lib/ld-linux.so.2 и /sbin/ldconfig.

Все остальное, которое помечено как исполняемое, запускается через интерпретатор, для которого поддерживаются два формата:

Файлы, начинающиеся с [ f3] будет иметь имя интерпретатора между этим и первым символом новой строки (это верно, нет требования, чтобы «скрипты» были текстовыми файлами). У файлов ELF есть сегмент PT_INTERP, который дает путь к интерпретатору (обычно /lib/ld-linux.so.2).

Когда такой файл выполняется, ядро ​​находит имя интерпретатора и называет его. Это может произойти рекурсивно, например, при запуске сценария оболочки:

Файлы, начинающиеся с #!, будут иметь имя интерпретатора между этим и первым символом новой строки (это верно, нет требования что «скрипты» являются текстовыми файлами). Ядро открывается /bin/sh, находит сегмент PT_INTERP, указывающий на /lib/ld-linux.so.2. Файлы ELF имеют сегмент PT_INTERP, который дает путь к интерпретатору (обычно /lib/ld-linux.so.2). ld-linux.so.2 загружает сегменты кода из /bin/sh, разрешает ссылки на разделяемую библиотеку и запускает свою основную функцию /bin/sh затем снова откроет файл сценария и начнет интерпретировать его по строкам.

С точки зрения ядра, единственное различие заключается в том, что для файла ELF передается дескриптор открытого файла, а не имя файла; это в основном оптимизация. Если интерпретатор затем решает перейти к сегменту кода, загруженному из файла, или интерпретировать его по строкам, решает только интерпретатор и в основном основан на соглашении.

1
задан 13 April 2017 в 15:24

1 ответ

Ответ, написанный @ Olian04, является частично правильным.

Что вы можете сделать, это войти в Settings>About Phone, а затем нажать Build Number (вероятно, буквы и цифры, всего шесть) семь раз для активации режима разработки. Оттуда выйдите About Phone. Вы должны увидеть новую опцию Developer Options прямо над About Phone или где-то рядом с ней.

Войдите внутрь Developer Options и проведите пальцем вниз, пока не увидите USB settings. Он должен быть установлен на «Зарядка». Установите его в режим MTP.

Подсоедините кабель и повторите попытку. Этот метод был протестирован на моем Nexus 5X, как на 6.0 Marshmallow, так и на 7.0 Nougat.

0
ответ дан 23 May 2018 в 04:03
  • 1
    Я упомянул об этом. Независимо от конфигурации USB-конфигурации, мне все равно пришлось изменить режим от «Зарядка до MTP» в уведомлении. – Olian04 19 November 2016 в 18:08
  • 2
    Это ошибка Android. Он всегда по умолчанию заряжает определенные версии Marshmallow. Однако, если вы находитесь в незатронутой версии, это будет ответом. – ideaman924 19 November 2016 в 18:10
  • 3
    Да ... но я сказал в вопросе, что он работал из коробки с моим Samsung, но не на моем Oneplus. Например. проблема, поставленная в этом вопросе, заключалась в том, что Oneplus не работал так же, как Samsung. – Olian04 19 November 2016 в 18:12
  • 4
    Samsung фактически нарушает правила безопасности, устанавливая его для MTP по умолчанию. Это должно теоретически быть «По умолчанию» по умолчанию. – ideaman924 19 November 2016 в 18:14
  • 5
    В противном случае любой Джо на улице мог бы подключить и украсть ваши данные. – ideaman924 19 November 2016 в 18:14

Другие вопросы по тегам:

Похожие вопросы: