AtlasKronos v1.0.1 — Correção crítica: importação de modelo via SAF
Pre-release🤖 AtlasKronos v1.0.1
🐛 Problema crítico corrigido
Problema reportado: No Android 13+, o Scoped Storage bloqueia totalmente o acesso à pasta /Android/data/com.kronos1027.atlaskronos.debug/files/ — nenhum app de arquivos (Termux, ZArchiver) consegue copiar o modelo para lá. Era impossível colocar o modelo manualmente.
Causa técnica:
- Isolamento em Sandbox: a pasta
/Android/data/é privada — só o próprio app tem acesso - Proteção Anti-Malware: Google bloqueou o acesso para evitar que apps leiam dados de outros
- Bloqueio do Seletor do Sistema (SAF): a partir do Android 13, a permissão manual de sobreposição foi desativada no kernel
✨ Solução: importação nativa via SAF
O app agora tem um botão 'Selecionar modelo (.gguf)' que abre o seletor de arquivos do sistema (Storage Access Framework). O usuário baixa o modelo em Downloads (como faria normalmente), abre o AtlasKronos, toca no botão, escolhe o arquivo, e o próprio app copia o conteúdo para sua pasta interna onde tem acesso total.
📋 Como usar (passo a passo)
-
Baixe o modelo (380MB) no navegador do celular:
- URL:
huggingface.co/bartowski/Qwen2.5-0.5B-Instruct-GGUF/resolve/main/Qwen2.5-0.5B-Instruct-Q4_K_M.gguf - O arquivo vai pra pasta Download
- URL:
-
Instale o APK v1.0.1 (por cima da v1.0.0 se já tinha instalado — não perde dados)
-
Abra o AtlasKronos — vai aparecer uma tela de boas-vindas com:
- Instruções claras (com o link acima)
- Botão grande '📁 Selecionar modelo (.gguf)'
-
Toque no botão — o seletor de arquivos do Android abre
-
Navegue até Downloads e selecione o arquivo
.ggufbaixado -
Aguarde a cópia — barra de progresso mostra percentual + MB copiados (~10-30s)
-
Pronto! O app mostra '✓ Modelo importado!' e abre a tela de chat
🔧 Melhorias técnicas
LlamaEngine.importModelFromUri()— copia viaContentResolvercom buffer 64KBInitCallback.onModelMissing()— notifica UI pra mostrar overlay de importação- Progresso em tempo real (percentual + bytes) durante a cópia
- Aceita qualquer arquivo
.gguf(não só nome fixo) — funciona com outros modelos - Deleta modelos antigos ao importar novo (mantém só 1)
takePersistableUriPermission()— pode re-ler o URI se necessário- Instruções claras com link clicável dentro do app
⚠️ Mesmas limitações da v1.0.0 (não testadas em device)
- ❌ Não foi possível testar em emulador (sem KVM no ambiente)
- ❌ Não foi possível testar em celular físico (sem ADB device conectado)
- ✅ Build do APK: SUCCESSFUL em 22s
- ✅ 13 libs nativas + 2 assets empacotados corretamente
- ✅ Inferência do llama.cpp + Qwen2.5-0.5B validada no Linux x86_64 (25 tokens/s)
- ✅ 5/5 testes de function-calling passaram no Linux
- ✅ 24/24 testes unitários JVM passaram
Sobre a meta de 500MB RAM: continua não atingida (estimativa ~650MB). Trade-off documentado no README.
📥 Download
Baixe o AtlasKronos-v1.0.1-debug.apk abaixo (200MB).
💜 Créditos
Feito por Darlan (NATSKY) — @Kronos1027
- llama.cpp — runtime de inferência
- Qwen2.5-0.5B-Instruct — modelo (Alibaba Cloud)
- bartowski's GGUF — versão Q4_K_M