Requisitos de interface

Esta página descreve um subconjunto das interfaces do kernel do Linux nas quais o Android depende para funcionar corretamente. A presença e correção dessas interfaces são testadas como parte do Vendor Test Suite (VTS) . Esse subconjunto crescerá com o tempo para conter uma porção maior de interfaces do kernel do Android.

Chamadas do sistema

Espera-se que todas as chamadas do sistema forneçam as mesmas assinaturas e semânticas do kernel Linux upstream da mesma versão.

prctl

Além das operações prctl upstream para versões de kernel compatíveis, o Android conta com operações prctl adicionais, cuja implementação pode ser encontrada no kernel android-common.

PR_SET_TIMERSLACK_PID
PR_SET_VMA

Sistemas de arquivos

O kernel Linux exporta interfaces através de vários sistemas de arquivos. O Android espera que essas interfaces comuniquem as mesmas informações, no mesmo formato e forneçam a mesma semântica do kernel Linux upstream. Para interfaces que não existem upstream, o comportamento apropriado é determinado pela ramificação correspondente do kernel comum do Android.

procfs

Interface Descrição
/proc/asound/ Arquivo somente leitura mostrando a lista de drivers ALSA configurados no momento.
/proc/cmdline Arquivo somente leitura contendo argumentos de linha de comando passados ​​para o kernel.
/proc/config.gz Arquivo somente leitura contendo a configuração de compilação do kernel.
/proc/cpuinfo Arquivo somente leitura contendo detalhes de CPU específicos da arquitetura.
/proc/diskstats Arquivo somente leitura mostrando estatísticas de E/S de dispositivos de bloco.
/proc/sistemas de arquivos Sistemas de arquivos de listagem de arquivos somente leitura atualmente suportados pelo kernel.
/proc/kmsg Arquivo somente leitura mostrando mensagens do kernel em tempo real.
/proc/loadavg Arquivo somente leitura mostrando a média de carga de CPU e E/S ao longo do tempo.
/proc/meminfo Arquivo somente leitura mostrando detalhes do subsistema de memória.
/proc/misc Arquivo somente leitura listando drivers diversos registrados no dispositivo principal diverso.
/proc/modules Arquivo somente leitura contendo informações sobre módulos de kernel carregados.
/proc/mounts Link simbólico para /proc/self/mounts , que é um arquivo somente leitura que lista informações sobre os sistemas de arquivos montados.
/proc/net Diretório contendo uma variedade de parâmetros de pilha de rede.
/proc/net/xt_qtaguid/ Arquivo de leitura/gravação que fornece informações sobre soquetes marcados.
/proc/pagetypeinfo Arquivo somente leitura contendo informações do alocador de página.
/proc/stat Arquivo somente leitura contendo várias estatísticas do kernel e do sistema.
/proc/swaps Arquivo somente leitura mostrando a utilização do espaço de troca. Este arquivo é opcional; seu conteúdo e permissões serão verificados no VTS somente se o arquivo estiver presente .
/proc/sys/abi/swp Arquivo de leitura-gravação que determina o comportamento da instrução ARM obsoleta SWP.
/proc/sys/fs/pipe-max-size Arquivo de leitura/gravação que relata o tamanho máximo, em bytes, de um buffer de canal individual.
/proc/sys/fs/protected_hardlinks Arquivo de leitura/gravação que controla o comportamento de criação de links físicos.
/proc/sys/fs/protected_symlinks Arquivo de leitura-gravação que controla o comportamento de criação de links simbólicos.
/proc/sys/fs/suid_dumpable Arquivo de leitura/gravação que controla o modo de dump principal para binários setuid ou protegidos/contaminados.
/proc/sys/kernel/core_pattern Arquivo de leitura-gravação que especifica o padrão de nome de arquivo de dump principal.
/proc/sys/kernel/core_pipe_limit Arquivo de leitura/gravação que define quantos processos de falha simultâneos podem ser canalizados para aplicativos de usuário em paralelo.
/proc/sys/kernel/dmesg_restrict Arquivo de leitura/gravação que controla se usuários sem privilégios podem acessar dmesg.
/proc/sys/kernel/domainname Arquivo de leitura/gravação que contém o nome de domínio YP/NIS do sistema.
/proc/sys/kernel/hostname Arquivo de leitura-gravação que determina o nome do host do sistema.
/proc/sys/kernel/hung_task_timeout_secs Arquivo de leitura/gravação que controla o tempo limite usado para determinar quando uma tarefa deixou de responder e deve ser considerada suspensa. Este arquivo é opcional; seu conteúdo e permissões serão verificados no VTS somente se o arquivo estiver presente .
/proc/sys/kernel/kptr_restrict Arquivo de leitura/gravação que determina se os ponteiros do kernel são impressos em arquivos proc e outras interfaces.
/proc/sys/kernel/modules_disabled Arquivo de leitura/gravação que controla se os módulos do kernel podem ser carregados.
/proc/sys/kernel/panic_on_oops Arquivo de leitura-gravação que controla o comportamento do kernel em oops.
/proc/sys/kernel/perf_event_max_sample_rate Arquivo de leitura-gravação que controla a taxa de amostragem máxima de eventos de desempenho.
/proc/sys/kernel/perf_event_paranoid Arquivo de leitura/gravação que controla o uso do sistema de eventos de desempenho por usuários sem privilégios.
/proc/sys/kernel/pid_max Arquivo de leitura-gravação que contém o valor de encapsulamento de alocação de PID.
/proc/sys/kernel/random/boot_id Arquivo somente leitura que contém um novo ID aleatório em cada inicialização.
/proc/sys/kernel/randomize_va_space Arquivo de leitura-gravação que determina a política de randomização do layout de endereço para o sistema.
/proc/sys/kernel/sched_child_runs_first Arquivo de leitura/gravação que controla se as tarefas recém-bifurcadas são favorecidas no agendamento em relação às tarefas pai.
/proc/sys/kernel/sched_latency_ns Arquivo de leitura/gravação que contém a latência máxima, em nanossegundos, que uma tarefa pode ocorrer antes de ser agendada.
/proc/sys/kernel/sched_rt_period_us Arquivo de leitura/gravação que contém a duração do período usada pelo limite de execução de RT em todo o sistema em microssegundos.
/proc/sys/kernel/sched_rt_runtime_us Arquivo de leitura/gravação que contém a quantidade de tempo, relativa a sched_rt_period_us, que o sistema pode executar tarefas RT.
/proc/sys/kernel/sched_tunable_scaling Arquivo de leitura/gravação que controla se sched_latency_ns deve ser ajustado automaticamente pelo agendador com base no número de CPUs.
/proc/sys/kernel/sched_wakeup_granularity_ns Arquivo de leitura-gravação que contém quanto mais a tarefa de tempo de execução virtual A deve ter do que a tarefa B em nanossegundos para que a tarefa B a anule.
/proc/sys/kernel/sysrq Arquivo de leitura/gravação que controla as funções que podem ser invocadas através da chave sysrq.
/proc/sys/net/* Diretório contendo uma variedade de parâmetros de pilha de rede.
/proc/sysrq-trigger Arquivo somente gravação que pode ser usado para iniciar funções sysrq.
/proc/sys/vm/dirty_background_ratio Arquivo de leitura/gravação que contém, como porcentagem do total de memória disponível (páginas livres e páginas recuperáveis), o número de páginas em que os threads de liberação do kernel em segundo plano começarão a gravar dados sujos.
/proc/sys/vm/dirty_expire_centisecs Arquivo de leitura-gravação que define quando os dados sujos são antigos o suficiente para serem elegíveis para gravação pelos encadeamentos do kernel flusher.
/proc/sys/vm/drop_caches Arquivo de leitura/gravação que pode ser usado para forçar o kernel a descartar caches limpos.
/proc/sys/vm/extra_free_kbytes Arquivo de leitura/gravação que pode ser usado para manter memória livre extra entre o limite em que a recuperação em segundo plano (kswapd) é ativada e o limite em que a recuperação direta (por processos de alocação) é ativada. Este arquivo é opcional; seu conteúdo e permissões serão verificados no VTS somente se o arquivo estiver presente .
/proc/sys/vm/max_map_count Arquivo de leitura/gravação que contém o número máximo de áreas de mapa de memória que um processo pode ter.
/proc/sys/vm/mmap_min_addr Arquivo de leitura-gravação que determina o endereço mínimo que pode ser mmap 'd.
/proc/sys/vm/mmap_rnd_bits Arquivo de leitura/gravação que especifica a quantidade de aleatoriedade nos endereços mmap 'd.
/proc/sys/vm/mmap_rnd_compat_bits Arquivo de leitura/gravação que especifica a quantidade de aleatoriedade nos endereços mmap 'd.
/proc/sys/vm/overcommit_memory Arquivo de leitura-gravação que determina o modo de contabilidade da memória virtual do kernel.
/proc/sys/vm/page-cluster Arquivo de leitura-gravação que controla o número de páginas até as quais as páginas consecutivas são lidas da troca em uma única tentativa.
/proc/uid_cputime/remove_uid_range Arquivo somente gravação que, quando gravado, remove UIDs de serem mostrados em /proc/uid_cputime/show_uid_stat .
/proc/uid_cputime/show_uid_stat Arquivo somente leitura contendo o tempo que os processos de um UID gastaram no espaço do usuário e do kernel.
/proc/uid_io/stats Arquivo somente leitura contendo uma lista de estatísticas de E/S para cada UID no sistema
/proc/uid_procstat/set Arquivo somente gravação usado para configurar um UID como primeiro ou segundo plano.
/proc/uid_time_in_state Arquivo somente leitura contendo o tempo que os processos de cada UID gastam executando em cada frequência disponível. Este arquivo é opcional; seu conteúdo e permissões serão verificados no VTS somente se o arquivo estiver presente .
/proc/tempo de atividade Arquivo somente leitura que mostra há quanto tempo o sistema está em execução.
/proc/versão Arquivo somente leitura contendo uma string descrevendo a versão do kernel.
/proc/vmallocinfo Arquivo somente leitura contendo intervalos vmalloc 'd.
/proc/vmstat Arquivo somente leitura contendo estatísticas de memória virtual do kernel.
/proc/zoneinfo Arquivo somente leitura contendo informações sobre zonas de memória.

desenvolvedor

Interface Descrição
/dev/ashmem Arquivo de dispositivo de memória compartilhada anônimo.
/dev/binder Arquivo de dispositivo de fichário.
/dev/hwbinder Arquivo de dispositivo de fichário de hardware.
/dev/tun Arquivo de dispositivo universal TUN/TAP.
/dev/xt_qtaguid Arquivo de dispositivo QTAGUID netfilter.

sysfs

Interface Descrição
/sys/class/net/*/mtu Arquivo de leitura-gravação contendo a unidade máxima de transmissão para cada interface.
/sys/class/rtc/*/hctosys Arquivo somente leitura mostrando se um determinado rtc fornece a hora do sistema na inicialização e na retomada.
/sys/devices/system/cpu/ Diretório contendo informações sobre configuração e frequência da CPU.
/sys/kernel/wakeup_reasons Diretório de arquivos somente leitura contendo o último tempo de suspensão e motivo de retomada.
/sys/power/state Arquivo de leitura-gravação que controla os estados de suspensão do sistema.
/sys/power/wake_lock Arquivo de leitura-gravação que contém os wake locks ativos.
/sys/power/wake_unlock Arquivo de leitura/gravação que contém wake locks não ativos.
/sys/power/wakeup_count Arquivo de leitura/gravação que pode ser usado para colocar o sistema em estado de suspensão, levando em consideração a chegada simultânea de eventos de ativação.

selinuxfs

A estrutura monta o selinuxfs em /sys/fs/selinux .

Caminho Descrição
/sys/fs/selinux/checkreqprot Arquivo de leitura/gravação contendo um sinalizador binário que determina como as proteções do selinux são verificadas nas chamadas mmap e mprotect .
/sys/fs/selinux/null Dispositivo nulo de leitura/gravação para uso pelo selinux.
/sys/fs/selinux/policy Arquivo somente leitura contendo a política do selinux em formato binário.