Pitch: Safe Woman Operational System: começando a criar um sistema baseado no AOSP

Eu comecei um novo experimento dentro do projeto Mulher Amparada: o Safe Woman Operational System.

A ideia é criar uma camada própria de sistema baseada no Android Open Source Project (AOSP), com o objetivo de integrar o Mulher Amparada diretamente ao sistema operacional.

E antes que pareça que eu coloquei o AOSP inteiro no GitHub: não coloquei. 😅

O repositório contém somente uma pequena parte de toda a estrutura necessária do AOSP. O restante continuaria vindo de uma árvore AOSP completa.

O que eu criei

A estrutura atualmente é:

Safe Woman Operational System/

├── device/

│ └── safe_woman/

│ ├── AndroidProducts.mk

│ ├── BoardConfig.mk

│ ├── safe_woman.mk

│ └── privapp-permissions-mulher-amparada.xml

│

└── packages/

└── apps/

└── MulherAmparada/

├── Android.bp

└── app/

└── src/

└── main/

A ideia é que device/safe_woman contenha as configurações específicas do sistema e que packages/apps/MulherAmparada contenha a integração do aplicativo.

O aplicativo utiliza o pacote:

com.mulheres

E o módulo foi preparado para o sistema de build do AOSP através do Android.bp.

E o AOSP inteiro?

Não está aqui.

O AOSP é enorme e possui componentes como Framework, ART, Bionic, System, HALs, kernel, Cuttlefish, bibliotecas, ferramentas de build, componentes externos, prebuilts e vários outros projetos.

O que existe neste repositório é somente a parte específica do Safe Woman OS.

A ideia é, futuramente, ter algo conceitualmente parecido com:

AOSP completo

+

Safe Woman OS

+

Mulher Amparada

↓

safe_woman-userdebug

↓

imagem do sistema

↓

Cuttlefish

Por que Cuttlefish?

Eu não estou começando com hardware físico.

A ideia inicial é utilizar o Cuttlefish, que permite executar uma versão virtual do Android.

Isso torna possível experimentar com a estrutura do sistema antes de pensar em qualquer hardware real.

O Mulher Amparada dentro do sistema

Uma das partes que acho mais interessantes é que o aplicativo deixa de ser pensado apenas como um APK que alguém instala depois.

A intenção é integrá-lo como parte da própria imagem do sistema.

Para isso, o projeto já possui uma configuração de aplicativo baseada no Soong:

android_app {

name: "MulherAmparada",

...

privileged: true,

}

Isso ainda não significa que todas as permissões do aplicativo sejam concedidas automaticamente. O Android possui regras próprias para permissões privilegiadas e permissões de runtime.

Ainda não é um sistema operacional completo

Essa parte é importante.

Eu não estou dizendo que já criei um Android completo do zero.

O que existe neste momento é uma estrutura experimental própria que foi organizada para ser incorporada a uma árvore AOSP completa.

Ainda existem várias etapas antes de isso virar uma imagem Android realmente inicializável.

Mas a estrutura já está sendo pensada seguindo a organização usada pelo próprio AOSP.

O que estou tentando aprender com isso

Mais do que simplesmente "criar um Android", a ideia é entender como um sistema baseado em AOSP é organizado:

  • configuração de produtos;
  • device/;
  • packages/apps/;
  • Soong e Android.bp;
  • aplicativos integrados ao sistema;
  • permissões privilegiadas;
  • dispositivos virtuais;
  • construção de uma imagem Android;
  • e, futuramente, execução no Cuttlefish. É um projeto experimental e ainda está no começo. Mas agora o Mulher Amparada não está sendo pensado apenas como um aplicativo. Estou começando a experimentar a ideia de construir o sistema ao redor dele.

Projeto

Repositório:

https://github.com/mulher-amparada/mulher-amparada-app

Pasta do Safe Woman Operational System:

https://github.com/mulher-amparada/mulher-amparada-app/tree/main/Safe%20Woman%20Operational%20System

Source

4 views·1 share