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 a exatidão dessas interfaces são testado como parte do Pacote de testes de fornecedor (VTS). Esse subconjunto crescerá ao longo do tempo para conter uma parte maior Interfaces do kernel do Android.

Chamadas do sistema

Todas as chamadas do sistema devem fornecer as mesmas assinaturas e semânticas que no kernel upstream do Linux da mesma versão.

prctl

Além das operações prctl upstream para suporte versões do kernel, o Android depende de outras operações prctl, a que pode ser encontrada no kernel android-common.

PR_SET_TIMERSLACK_PID
PR_SET_VMA

Sistemas de arquivos

O kernel do Linux exporta interfaces usando vários sistemas de arquivos. O Android espera essas interfaces comunicam as mesmas informações no mesmo formato, e fornecem a mesma semântica do kernel upstream do Linux. Para interfaces que não existem upstream, o comportamento apropriado é determinado pelo sistema 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 que contém a configuração do build do kernel.
/proc/cpuinfo Arquivo somente leitura que contém detalhes de CPU específicos da arquitetura.
/proc/diskstats Arquivo somente leitura que mostra estatísticas de E/S de dispositivos em bloco.
/proc/filesystems Arquivos somente leitura que listam os sistemas de arquivos atualmente compatíveis com a grão
/proc/kmsg Arquivo somente leitura que mostra mensagens do kernel em tempo real.
/proc/loadavg Arquivo somente leitura que mostra a média da 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 com uma lista dos drivers registrados na dispositivo principal diversos.
/proc/modules Arquivo somente leitura contendo informações sobre módulos do kernel carregados.
/proc/mounts Link simbólico para /proc/self/mounts, que é um arquivo somente leitura listando informações sobre os sistemas de arquivos montados.
/proc/net Diretório contendo diversos parâmetros de pilha de rede.
/proc/net/xt_qtaguid/ Arquivo de leitura e gravação que fornece informações sobre soquetes com tag.
/proc/pagetypeinfo Arquivo somente leitura com informações do alocador da 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 forem verificados no VTS somente se o arquivo está presente.
/proc/sys/abi/swp Arquivo de leitura e gravação que determina o comportamento do ARM obsoleto instrução SWP.
/proc/sys/fs/pipe-max-size Arquivo de leitura/gravação que informa o tamanho máximo, em bytes, de uma buffer de pipe individual.
/proc/sys/fs/protected_hardlinks Arquivo de leitura e gravação que controla o comportamento da criação de links físicos.
/proc/sys/fs/protected_symlinks Arquivo de leitura e gravação que controla o comportamento de criação de objetos links.
/proc/sys/fs/suid_dumpable Arquivo de leitura e gravação que controla o modo de despejo do núcleo para setuid ou outro binários protegidos/corrompidos.
/proc/sys/kernel/core_pattern Arquivo de leitura e gravação que especifica o padrão do nome de arquivo de despejo do núcleo.
/proc/sys/kernel/core_pipe_limit Arquivo de leitura/gravação que define quantos processos com falhas simultâneas podem ser encaminhados aos apps do 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 e gravação que determina o nome do host do sistema.
/proc/sys/kernel/hung_task_timeout_secs Arquivo de leitura e gravação que controla o tempo limite usado para determinar quando uma tarefa não responde e deve ser considerado travado. Este arquivo é opcional. seu conteúdo e permissões forem verificados no VTS somente se o arquivo está presente.
/proc/sys/kernel/kptr_restrict Arquivo de leitura e gravação que determina se os ponteiros do kernel são mostrados Arquivos proc e outras interfaces.
/proc/sys/kernel/modules_disabled Arquivo de leitura e gravação que controla se os módulos do kernel podem ser carregados.
/proc/sys/kernel/panic_on_oops Arquivo de leitura e gravação que controla o comportamento do kernel em operações operacionais.
/proc/sys/kernel/perf_event_max_sample_rate Arquivo de leitura e gravação que controla a taxa de amostragem máxima do desempenho eventos.
/proc/sys/kernel/perf_event_paranoid Arquivo de leitura e 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 e gravação que contém o valor de encapsulamento da 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 e gravação que determina a política de randomização do layout de endereços para o sistema.
/proc/sys/kernel/sched_child_runs_first Arquivo de leitura e gravação que controla se as tarefas recém-ramificadas são favorecidas na agendando as tarefas mãe.
/proc/sys/kernel/sched_latency_ns Arquivo de leitura e gravação que contém a latência máxima, em nanossegundos, que uma tarefa podem ocorrer antes da programação.
/proc/sys/kernel/sched_rt_period_us Arquivo de leitura/gravação que contém a duração do período usado pelo RT em todo o sistema o limite de execução em microssegundos.
/proc/sys/kernel/sched_rt_runtime_us Arquivo de leitura/gravação que contém a quantidade de tempo, relativa ao sched_rt_period_us, que o sistema pode executar tarefas RT.
/proc/sys/kernel/sched_tunable_scaling Arquivo de leitura e gravação que controla se sched_delay_ns deve ser ajustado automaticamente pelo programador com base no número de CPUs.
/proc/sys/kernel/sched_wakeup_granularity_ns Arquivo de leitura e gravação que contém a quantidade restante de tarefa A no ambiente de execução virtual que precisa que a tarefa B, em nanossegundos, para que a tarefa B encerre por preempção.
/proc/sys/kernel/sysrq Arquivo de leitura e gravação que controla as funções que podem ser invocadas por meio do sysrq.
/proc/sys/net/* Diretório contendo diversos 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 uma porcentagem da memória total disponível (páginas livres e recuperáveis), o número de páginas em que o as linhas de execução de limpeza do kernel em segundo plano começam a gravar dados sujos.
/proc/sys/vm/dirty_expire_centisecs Arquivo de leitura e gravação que define quando os dados sujos têm idade suficiente para serem qualificados para gravação pelas linhas de execução de limpeza do kernel.
/proc/sys/vm/drop_caches Arquivo de leitura e gravação que pode ser usado para forçar o kernel a eliminar armazenamento em cache.
/proc/sys/vm/extra_free_kbytes arquivo de leitura/gravação que pode ser usado para manter memória livre extra entre as limite em que a recuperação em segundo plano (kswapd) é iniciada, e o limite quando a reivindicação direta (por meio da alocação de processos) é iniciada. Este arquivo é opcional. seu conteúdo e permissões forem verificados no VTS somente se o arquivo está presente.
/proc/sys/vm/max_map_count Arquivo de leitura/gravação que contém o número máximo de áreas do mapa de memória que uma e o processo de transformação de dados pode ter.
/proc/sys/vm/mmap_min_addr Arquivo de leitura/gravação que determina o endereço mínimo que pode ser mmap marcado.
/proc/sys/vm/mmap_rnd_bits Arquivo de leitura/gravação que especifica a quantidade de aleatoriedade em mmap endereços marcados.
/proc/sys/vm/mmap_rnd_compat_bits Arquivo de leitura/gravação que especifica a quantidade de aleatoriedade em mmap endereços marcados.
/proc/sys/vm/overcommit_memory Arquivo de leitura e gravação que determina a contabilidade da memória virtual do kernel modo
/proc/sys/vm/page-cluster Arquivo de leitura/gravação que controla o número de páginas até o qual páginas consecutivas são lidas a partir da troca em uma única tentativa.
/proc/uid_cputime/remove_uid_range Arquivo somente gravação que, quando gravado, remove os UIDs da exibição /proc/uid_cputime/show_uid_stat:
/proc/uid_cputime/show_uid_stat Arquivo somente leitura que contém o tempo que os processos de um UID passaram nas atividades dos usuários e espaço do kernel.
/proc/uid_io/stats Arquivo somente leitura que contém 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 que contém o tempo de execução dos processos de cada UID para cada frequência disponível. Este arquivo é opcional; os conteúdos e as permissões serão verificadas no VTS somente se o arquivo estiver presente.
/proc/uptime Arquivo somente leitura que mostra há quanto tempo o sistema está em execução.
/proc/version Arquivo somente leitura contendo uma string que descreve a versão do kernel.
/proc/vmallocinfo Arquivo somente leitura com intervalos de vmalloc.
/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.

dev

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

sysfs

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

Selinuxfs

O framework monta selinuxfs em /sys/fs/selinux.

Caminho Descrição
/sys/fs/selinux/checkreqprot Arquivo de leitura/gravação contendo uma sinalização binária que determina como o Linux são verificadas em chamadas mmap e mprotect.
/sys/fs/selinux/null Dispositivo de leitura/gravação nulo para uso pelo selinux.
/sys/fs/selinux/policy Arquivo somente leitura contendo a política selinux em formato binário.