Como ativar a API Camera2 e disparar RAW no Android

Embora a API Camera2 tenha sido introduzida no Android Lollipop em 2015, a maioria dos fabricantes de telefones em 2017 ainda não implementou a API Camera2 em seus celulares. Apenas alguns dispositivos premium têm suporte total para Camera2 API, apesar do fato de o Google ter descontinuado a API Camera legada e instado os desenvolvedores a implementarem Camera2 desde seu lançamento. Parece que os fabricantes estão usando os recursos da API Camera2, como a captura no formato RAW, como um ponto de venda para seus dispositivos premium, em vez da atualização universal que o Google pretendia que fosse.

A má notícia é que não é possível simplesmente atualizar sua ROM de estoque com a API Camera2 - você teria que reconstruir a ROM e adicionar suporte à API Camera2 você mesmo, ou atualizar uma ROM personalizada com a API integrada. A boa notícia é que existem alguns truques para habilitar a API Camera2 se ela foi deixada em sua ROM, mas desabilitada pelo fabricante. Também há uma maneira nativa de tirar fotos em formato RAW com dispositivos Mediatek. Vou mostrar esses truques abaixo.

O que diabos é o formato RAW e por que eu quero a API Camera2?

Se você topou com este guia e não tem ideia do que é o formato RAW, é basicamente um formato de imagem sem perdas - pense nele como taxas de bits de vídeo ou música. Você sabe a diferença entre 120kbps, 320kbps e arquivos de música FLAC, certo? Ou assistindo a vídeos do Youtube em 320p vs 1080p? É basicamente a mesma coisa para JPEG vs RAW, mais ou menos .

O formato RAW irá capturar fotos em glória completamente sem perdas, o que significa compressão de imagem zero (mas tamanhos de arquivo muito maiores). Essas imagens RAW são muito melhores para manipulação em software de imagem - porque, assim como o nome do tipo de arquivo indica, são dados de imagem completamente RAW . Se você comparar um JPEG com uma foto RAW diretamente da câmera lado a lado, o JPEG pode parecer ter cores mais brilhantes ou outros aprimoramentos visuais - isso porque os JPEGs são pós-processados ​​pelo software da câmera e integrados aos dados da imagem .

Portanto, um RAW não editado pode parecer mais feio do que um JPEG na comparação lado a lado. Mas para os entusiastas da manipulação de imagens, a falta de “pós-processamento” pelo software da câmera é exatamente o que você precisa. O pós-processamento está inteiramente sob seu controle . Isso significa que as fotos RAW podem ser aprimoradas em um grau muito maior do que os arquivos JPEG, porque você não está lutando contra a “mágica” de pós-processamento do software da câmera aplicada aos arquivos JPEG.

Ativar Camera2 API em Build.Prop

Aviso: Sempre crie um backup de seu build.prop caso algo dê errado.

Esse método tem 50/50 de chance de sucesso, mas vale a pena tentar. Parece que alguns fabricantes têm API Camera2 incorporada nas ROMs, mas a desativaram por algum motivo - simplesmente adicionando uma linha ao build.prop na partição / system do seu dispositivo Android, você pode habilitar a funcionalidade API Camera2.

Veja também: Como editar o Android Build.Prop com ajustes essenciais

Primeiro, você precisará de um telefone com acesso root e um método de edição do arquivo build.prop. Você pode usar um aplicativo explorador de arquivos raiz (como ES Explorer ) para navegar para a partição / system em seu telefone e abrir build.prop com um editor de texto, ou você pode usar um editor build.prop dedicado como JRummy BuildProp Editor.

Assim que estiver dentro do build.prop, pesquise esta string:

persist.camera.HAL3.enabled = 0

Mude de 0 para 1, salve e saia do build.prop e reinicie o telefone. Se essa string não for encontrada em seu build.prop, tente adicionar manualmente persist.camera.HAL3.enabled = 1 na parte inferior de seu arquivo build.prop, salve e reinicie. Você pode então testar se funcionou iniciando um aplicativo de câmera de terceiros, como Open Camera ou Camera FV-5, e verificando no menu Configurações se é possível ativar o modo Camera2 API.

Ativar Camera2 API no Terminal Emulator

Um método alternativo ao acima é tentar ativar a API Camera2 por meio do Emulador de terminal. Basta iniciar o terminal e digitar os seguintes comandos:

su

su persist.camera.HAL3.enabled 1

Saída

Saída

Reinicie seu telefone e verifique se ele funcionou com um aplicativo de câmera de terceiros, como Open Camera ou Camera FV-5.

Tire fotos RAW no modo Mediatek Engineer

Se você tiver um dispositivo com chipset Mediatek, há uma maneira de tirar fotos RAW mesmo sem a API Camera2 ativada, por meio do Modo de Engenheiro. Existem vários métodos para acessar o Modo de Engenheiro:

Abra o discador do seu telefone e digite este número: * # * # 3646633 # * # *

Alternativamente, você pode instalar um aplicativo como o MTK Engineering Mode para ter sempre um ícone de atalho em sua casa. Você também pode instalar o Xposed e o módulo GravityBox ( veja: Como criar um tema Android completo com os módulos Xposed ) , que também terá um iniciador no modo Engineer.

Em qualquer caso, uma vez dentro do modo Engineer, simplesmente role para a direita até Hardware Testing> Camera. Este é um modo de teste para o hardware da câmera, mas você pode habilitar todos os tipos de opções de câmera, incluindo o formato RAW, e tirar fotos.

Quando você tira fotos RAW no modo Engineer, dois arquivos serão salvos no diretório / DCIM / CameraEM / - Um JPEG para visualizar a foto e o arquivo RAW real, que não pode ser visualizado no telefone Android. Você precisará exportar o arquivo RAW para o seu PC e usar um software de edição de imagem como o Adobe Photoshop para manipular a imagem RAW, e também pode precisar convertê-lo para um formato RAW universal em vez do que o seu telefone produz.