Как включить Camera2 API и снимать RAW на Android

Хотя Camera2 API был представлен для Android Lollipop в 2015 году, большинство производителей телефонов в 2017 году до сих пор не реализовали Camera2 API в своих мобильных телефонах. Только несколько устройств премиум-класса имеют полную поддержку Camera2 API, несмотря на то, что Google отказался от устаревшего Camera API и призвал разработчиков внедрить Camera2 с момента его выпуска. Похоже , что производители используют особенности Camera2 API, как формат RAW захват, как продажи точка для своих премиальных устройств, а не универсальное обновления Google , предназначенного, чтобы быть.

Плохая новость заключается в том, что невозможно просто прошить стандартное ПЗУ с помощью Camera2 API - вам придется перестроить ПЗУ и добавить поддержку Camera2 API самостоятельно или прошить пользовательское ПЗУ со встроенным API. Хорошая новость заключается в том, что есть несколько уловок для включения Camera2 API, если он был оставлен в вашем ПЗУ, но отключен производителем. Также есть собственный способ делать фотографии в формате RAW с помощью устройств Mediatek. Я покажу вам эти приемы ниже.

Что за формат RAW и зачем мне Camera2 API?

Если вы наткнулись на это руководство и понятия не имеете, что такое формат RAW, в основном это формат изображения без потерь - подумайте о нем как о битрейте видео или музыки. Вы знаете разницу между музыкальными файлами со скоростью 120 кбит / с, 320 кбит / с и FLAC, верно? Или смотреть видео с Youtube в разрешении 320p против 1080p? Это в основном то же самое для JPEG и RAW, вроде того .

Формат RAW позволяет захватывать фотографии без потерь, что означает нулевое сжатие изображения (но гораздо большие размеры файлов). Этими изображениями RAW гораздо удобнее манипулировать в программном обеспечении, поскольку, как следует из названия типа файла, они являются полностью данными изображения RAW . Если вы сравните JPEG рядом с фотографией RAW прямо из камеры , JPEG может показаться более ярким или иметь другие визуальные улучшения - это связано с тем, что файлы JPEG постобработаны программным обеспечением камеры и встроены в данные изображения. .

Таким образом, неотредактированный RAW может показаться уродливее, чем JPEG при параллельном сравнении. Но для энтузиастов обработки изображений отсутствие «постобработки» программным обеспечением камеры - это именно то, что вам нужно. Постобработка полностью под вашим контролем . Это означает, что фотографии RAW могут быть улучшены в гораздо большей степени, чем файлы JPEG, потому что вы не боретесь с «магией» постобработки программного обеспечения камеры, применяемой к файлам JPEG.

Включите Camera2 API в Build.Prop

Предупреждение: всегда создавайте резервную копию вашего build.prop на случай, если что-то пойдет не так.

Вероятность успеха этого метода составляет 50/50, но попробовать стоит. Кажется, что некоторые производители встроили Camera2 API в ПЗУ, но по какой-то причине отключили его - просто добавив строку в build.prop в разделе / ​​system вашего Android-устройства, вы можете включить функциональность Camera2 API.

См. Также: Как отредактировать Android Build.Prop с помощью основных настроек

Сначала вам понадобится рутированный телефон и способ редактирования файла build.prop. Вы можете использовать приложение корневого проводника файлов (например, ES Explorer ), чтобы перейти к разделу / system на вашем телефоне и открыть build.prop с помощью текстового редактора, или вы можете использовать специальный редактор build.prop, такой как JRummy BuildProp Editor.

Как только вы окажетесь внутри build.prop, найдите эту строку:

persist.camera.HAL3.enabled = 0

Измените 0 на 1, сохраните и выйдите из build.prop, затем перезагрузите телефон. Если этой строки нет в вашем build.prop, попробуйте вручную добавить persist.camera.HAL3.enabled = 1 в конец файла build.prop, сохраните и перезагрузитесь. Затем вы можете проверить, работает ли оно, запустив стороннее приложение камеры, такое как Open Camera или Camera FV-5, и проверив в меню настроек, можете ли вы включить режим Camera2 API.

Включите Camera2 API в эмуляторе терминала

Альтернативный способ описанному выше - попытаться включить Camera2 API через эмулятор терминала. Просто запустите терминал и введите следующие команды:

вс

su persist.camera.HAL3.enabled 1

Выход

Выход

Перезагрузите телефон и проверьте, работает ли он со сторонним приложением камеры, например Open Camera или Camera FV-5.

Снимайте фотографии в формате RAW в режиме инженера Mediatek

Если у вас есть устройство с набором микросхем Mediatek, есть способ снимать фотографии в формате RAW даже без включенного API Camera2 в режиме инженера. Есть несколько способов получить доступ к инженерному режиму:

Откройте номеронабиратель своего телефона и введите этот номер: * # * # 3646633 # * # *

Кроме того, вы можете установить такое приложение, как MTK Engineering Mode, чтобы всегда иметь ярлык в вашем доме. Вы также можете установить Xposed и модуль GravityBox ( см .: Как полностью создать тему для Android с модулями Xposed ) , который также будет иметь средство запуска в режиме инженера.

В любом случае, войдя в инженерный режим, просто прокрутите вправо до пункта «Тестирование оборудования»> «Камера». Это тестовый режим для оборудования камеры, но вы можете включить все виды параметров камеры, включая формат RAW, и делать фотографии.

Когда вы снимаете фотографии в формате RAW в режиме инженера, в каталог / DCIM / CameraEM / будут сохранены два файла - JPEG для предварительного просмотра фотографии и фактический файл RAW, который нельзя просмотреть на телефоне Android. Вам нужно будет экспортировать файл RAW на свой компьютер и использовать программное обеспечение для редактирования изображений, такое как Adobe Photoshop, для управления изображением RAW, и вам также может потребоваться преобразовать его в универсальный формат RAW, а не в то, что выводит ваш телефон.