Nível da API do fornecedor refere-se à versão da interface compatível com o fornecedora. A interface é bidirecional. ela descreve a API que a partição do fornecedor fornece à partição do sistema (o hardware camada de abstração ou interface HAL) e também a API que o fornecedor particiona da partição do sistema (o kit de desenvolvimento nativo de baixo nível ou interface LLNDK).
O nível da API do fornecedor também é usado para determinar os requisitos de software do fornecedor. (VSRs), que é uma coleção de requisitos funcionais e não funcionais que que o software da partição do fornecedor precisa atender.
O restante desta página explica como o sistema propriedades são usadas, dependendo da versão do Android, para determinar o fornecedor Nível da API.
Congelamento dos fornecedores
O Android permite que um fornecedor congele a partição do fornecedor em uma versão específica do a VSR. O conjunto de recursos que o Android espera da partição do fornecedor é determinado pela o nível da API do fornecedor associado à partição do fornecedor. No tempo de execução, o comportamento do software em execução na partição do sistema se ajusta para acomodar o nível da API do fornecedor da partição do fornecedor. Por exemplo, o software a partição do sistema pode não usar novos recursos se eles não forem suportados pelo o nível da API da partição do fornecedor.
O congelamento de fornecedores só estará disponível se você estiver criando Dispositivo compatível com Android.
Determinar o nível da API do fornecedor (Android 14 QPR3 e versões mais recentes)
No Android 14 QPR3 e versões mais recentes, o nível da API do fornecedor é lançado separadamente, ou seja, o nível da API do SDK e o fornecedor O nível da API está fora de sincronia.
Devido às programações de lançamento separadas, para Android 14-QPR3 e posteriores, o nível da API do fornecedor é totalmente dissociados do nível da API do SDK. Para garantir que essa separação seja clara, a do nível da API do fornecedor é uma data formatada como AAAAMM (ano e mês) enquanto o nível do SDK é um número inteiro.
O Android 14 QPR3 e versões mais recentes têm o sistema abaixo
Propriedades relacionadas ao nível da API do fornecedor (ro.vendor.api_level
):
Propriedade do sistema | Formato | Descrição | Configuração inicial |
---|---|---|---|
ro.board.api_level |
AAAAMM | O nível da API do fornecedor compatível com o software de um chipset. Esta propriedade é definida para todos os chipsets. | Isso é definido automaticamente pelo sistema de compilação. |
ro.board.first_api_level |
AAAAMM | O nível da API do fornecedor com que o software de um chipset foi lançado pela primeira vez. Essa propriedade é uma função apenas do chipset e é definida pelos fornecedores do SoC se o chipset SoC estiver qualificado para o congelamento de fornecedores. Após a configuração inicial, ela não pode ser modificada. | Os fornecedores de SoC definem essa configuração usando BOARD_SHIPPING_API_LEVEL . |
ro.product.first_api_level |
Número inteiro | O nível da API do SDK com que o dispositivo é iniciado inicialmente. | Essa propriedade é definida pelo OEM e nunca é atualizada, mesmo após upgrades do SO. |
ro.vendor.api_level |
AAAAMM | O nível da API do fornecedor com que o dispositivo como um todo precisa estar em conformidade. | Descrita depois desta tabela. |
ro.board.api_frozen |
booleano | Essa propriedade será definida como true se o nível da API do fornecedor que ro.board.api_level representa for finalizado. |
Se essa propriedade não for definida, o padrão será false . |
ro.llndk.api_level |
AAAAMM | O nível da API do fornecedor no formato AAAAMM que o LLNDK atual na partição do sistema oferece. O LLNDK é compatível com versões anteriores. Portanto, qualquer imagem de fornecedor menor ou igual a esse nível de API pode ser atualizada com essa imagem do sistema. | Essa propriedade é definida pela partição do sistema. |
A propriedade ro.vendor.api_level
é derivada de uma das duas maneiras a seguir:
Se o chipset estiver qualificado para o congelamento de fornecedor:
ro.vendor.api_level = min( ro.board.api_level, AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level))
Se o chipset não estiver sob congelamento de fornecedor:
ro.vendor.api_level = AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level)
O método AVendorSupport_getVendorApiLevelOf()
determina
do fornecedor em um nível da API do SDK. Por exemplo
AVendorSupport_getVendorApiLevelOf(35)
, em que 35
é o nível da API do SDK do
versão principal do Android em 2024 retorna 202404
, que é a data aproximada para
QPR3 do Android 14 quando o nível atual da API do fornecedor era
definido.
Determinar o nível da API do fornecedor (Android 13)
O nível da API do fornecedor segue o nível da API do SDK, que é voltado ao SO do app e é atualizada uma vez por ano quando a nova plataforma Android é lançada para o AOSP.
O Android 13 tem o seguinte sistema
Propriedades relacionadas ao nível da API do fornecedor (ro.vendor.api_level
):
Propriedade do sistema | Formato | Descrição | Configuração inicial |
---|---|---|---|
ro.board.first_api_level |
Número inteiro | O nível da API do fornecedor com que o software de um chipset foi lançado pela primeira vez. Essa é uma função somente do chipset e não pode ser modificada por fornecedores de SoC ou OEMs. Esta propriedade é definida apenas para chipsets qualificados para o congelamento de fornecedor | O valor é estabelecido definindo BOARD_SHIPPING_API_LEVEL no arquivo device.mk . |
ro.board.api_level |
Número inteiro | O nível da API do fornecedor compatível com o software de um chipset. Esta propriedade é definida apenas para os chipsets qualificados para o congelamento de fornecedor. Esta propriedade é definida para todos os chipsets. | Inicialmente, o valor dessa propriedade é definido pelo sistema de compilação para o mesmo valor de ro.board.first_api_level , mas pode ser atualizado se a partição do fornecedor for atualizada. |
ro.product.first_api_level |
Número inteiro | O nível da API do SDK com que o dispositivo é iniciado inicialmente. | Essa propriedade é definida pelo OEM e nunca é atualizada, mesmo após upgrades do SO. |
ro.vendor.api_level |
Número inteiro | O nível da API do fornecedor com que o dispositivo como um todo precisa estar em conformidade. | Descrita depois desta tabela. |
ro.vndk.version |
Número inteiro | A versão do VNDK para a criação da partição do fornecedor. | Essa propriedade é definida pela partição do sistema. |
ro.vendor.build.version.sdk |
Número inteiro | O nível da API do SDK da árvore de origem em que a partição do fornecedor foi criada. | |
ro.vendor.build.version.release |
Número inteiro | A versão da plataforma da árvore de origem em que a partição do fornecedor foi criada. | |
ro.vendor.build.version.release_or_codename |
Número inteiro | O codinome da árvore de origem em que a partição do fornecedor foi criada. |
A propriedade ro.vendor.api_level
é definida automaticamente como o mínimo de ro.board.api_level
(ou ro.board.first_api_level
se ro.board.api_level
não estiver definido) e
ro.product.first_api_level
.