Хотя API-интерфейс Camera2 был представлен в Android Lollipop в 2015 году, большинство производителей телефонов в 2017 году до сих пор не реализовали API-интерфейс Camera2 в своих мобильных телефонах. Только несколько устройств премиум-класса имеют полную поддержку Camera2 API, несмотря на тот факт, что Google устарел унаследованный API-интерфейс Camera и призвал разработчиков внедрять Camera2 с момента его выпуска. Похоже, что производители используют функции Camera2 API, такие как захват формата RAW, в качестве точки продаж для своих премиальных устройств, а не для универсального обновления, которое задумал Google.
Плохая новость заключается в том, что невозможно просто перезаписать ваше стандартное ПЗУ с помощью API-интерфейса Camera2 — вам придется пересобрать ПЗУ и добавить поддержку 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 в эмуляторе терминала
Альтернативным способом, описанным выше, является попытка включить API-интерфейс Camera2 через эмулятор терминала. Просто запустите терминал и введите следующие команды:
су
su persist.camera.HAL3.enabled 1
выход
выход
Перезагрузите телефон и проверьте, работает ли он с сторонним приложением камеры, таким как Open Camera или Camera FV-5.
Снимайте RAW фотографии в режиме Mediatek Engineer
Если у вас есть устройство с набором микросхем Mediatek, есть способ, позволяющий снимать фотографии в формате RAW даже без включенного Camera2 API, в режиме Engineer Mode. Существует несколько методов доступа к режиму инженера:
Откройте номеронабиратель телефона и введите этот номер: * # * # 3646633 # * # *
Кроме того, вы можете установить приложение, такое как MTK Engineering Mode, чтобы всегда иметь ярлык на вашем доме. Вы также можете установить Xposed и модуль GravityBox (см. «Как полностью создать тему Android с модулями Xposed»), который также будет иметь панель запуска в режиме Engineer.
В любом случае, попав в Инженерный режим, просто прокрутите вправо до «Тестирование оборудования»> «Камера». Это режим тестирования оборудования камеры, но вы можете включить все виды параметров камеры, включая формат RAW, и делать фотографии.
При съемке фотографий в формате RAW в режиме Engineer два файла будут сохранены в каталоге / DCIM / CameraEM / — JPEG для предварительного просмотра фотографии и фактический файл RAW, который нельзя просмотреть на телефоне Android. Вам нужно будет экспортировать файл RAW на компьютер и использовать программное обеспечение для редактирования изображений, такое как Adobe Photoshop, для работы с изображением RAW, а также может потребоваться преобразовать его в универсальный формат RAW, а не в то, что выводит ваш телефон.