fix: center quick-link pills in mobile header; add APK repack docs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
72ca759d1f
commit
18ed6a8e2e
3 changed files with 112 additions and 0 deletions
|
|
@ -66,6 +66,14 @@ FICHEROS DE CAMBIOS (documentan lo que se modifico y por que)
|
|||
- Botones de grupo redondeados, acordeon colapsado por defecto
|
||||
- QR en pubs de invites_view.js (renderPubTable async)
|
||||
|
||||
cambio_apk_repack.txt
|
||||
Como reempaquetar el APK con los cambios CSS/JS para instalar en Android.
|
||||
- Metodo correcto: modificar SOLO assets/nodejs-project.zip en el APK original
|
||||
- Por que falla si se reempaqueta todo (resources.arsc debe ser STORED)
|
||||
- Comandos exactos: zip -d META-INF, zip -0, zipalign, apksigner
|
||||
- Keystore: /home/sito/oasis-release-key.jks (alias: oasis, pass: oasis123)
|
||||
- APK lista: /home/sito/oasis-v0.6.8-modded.apk
|
||||
|
||||
--------------------------------------------------------------
|
||||
NOTA PARA EL DEVELOPER
|
||||
--------------------------------------------------------------
|
||||
|
|
|
|||
103
CONTEXT/cambio_apk_repack.txt
Normal file
103
CONTEXT/cambio_apk_repack.txt
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
===============================================================
|
||||
CAMBIO: REEMPAQUETADO APK PARA ANDROID
|
||||
Fecha: 2026-05-01
|
||||
===============================================================
|
||||
|
||||
--------------------------------------------------------------
|
||||
OBJETIVO
|
||||
--------------------------------------------------------------
|
||||
Distribuir los cambios CSS/JS del proyecto Node.js como APK
|
||||
instalable en Android (probado: Pixel 6 GrapheneOS).
|
||||
|
||||
--------------------------------------------------------------
|
||||
ARCHIVO CLAVE
|
||||
--------------------------------------------------------------
|
||||
/home/sito/oasis-v0.6.8-modded.apk <- APK lista para instalar
|
||||
/home/sito/oasis-v0.6.8.apk <- APK original sin modificar
|
||||
/home/sito/oasis-release-key.jks <- keystore de firma
|
||||
alias: oasis | password: oasis123
|
||||
|
||||
--------------------------------------------------------------
|
||||
METODO CORRECTO (IMPORTANTE)
|
||||
--------------------------------------------------------------
|
||||
NO usar "zip -r" para reempaquetar el APK entero — destruye
|
||||
la compresión de resources.arsc (debe ser STORED) y cambia
|
||||
la compresión de otros archivos críticos.
|
||||
|
||||
El método correcto es modificar SOLO el archivo que cambia:
|
||||
|
||||
1. Copiar el APK original como base:
|
||||
cp oasis-v0.6.8.apk /tmp/oasis-temp.apk
|
||||
|
||||
2. Quitar la firma original (META-INF):
|
||||
zip -d /tmp/oasis-temp.apk "META-INF/*"
|
||||
|
||||
3. Crear el nuevo bundle Node.js:
|
||||
cd /home/sito/COFRE/CODERS/oasis_mobile/nodejs-project
|
||||
zip -r /tmp/nodejs-project-new.zip nodejs-project/
|
||||
|
||||
4. Reemplazar SOLO assets/nodejs-project.zip con -0 (stored):
|
||||
cd /tmp/apk_repack <- directorio con el APK extraido
|
||||
zip -0 /tmp/oasis-temp.apk assets/nodejs-project.zip
|
||||
|
||||
5. Alinear:
|
||||
~/Android/Sdk/build-tools/35.0.1/zipalign -v -p 4 \
|
||||
/tmp/oasis-temp.apk /tmp/oasis-aligned.apk
|
||||
|
||||
6. Firmar:
|
||||
~/Android/Sdk/build-tools/35.0.1/apksigner sign \
|
||||
--ks /home/sito/oasis-release-key.jks \
|
||||
--ks-pass pass:oasis123 \
|
||||
--key-pass pass:oasis123 \
|
||||
--ks-key-alias oasis \
|
||||
--out /home/sito/oasis-v0.6.8-modded.apk \
|
||||
/tmp/oasis-aligned.apk
|
||||
|
||||
--------------------------------------------------------------
|
||||
POR QUE FALLA SI SE REEMPAQUETA MAL
|
||||
--------------------------------------------------------------
|
||||
- resources.arsc debe ser STORED (sin comprimir) y alineado
|
||||
en 4 bytes — Android 7+ lo exige. Si se comprime: "App not
|
||||
installed".
|
||||
- Las librerias .so en el APK original son DEFLATED (no STORED).
|
||||
Si se cambia su compresion tambien puede fallar.
|
||||
- La solucion: no tocar lo que no hace falta. Solo el .zip.
|
||||
|
||||
--------------------------------------------------------------
|
||||
ESTRUCTURA CORRECTA (verificada)
|
||||
--------------------------------------------------------------
|
||||
STORED assets/dexopt/baseline.prof
|
||||
STORED assets/dexopt/baseline.profm
|
||||
DEFLAT classes.dex
|
||||
DEFLAT lib/arm64-v8a/libc++_shared.so
|
||||
DEFLAT lib/arm64-v8a/libnative-lib.so
|
||||
DEFLAT lib/arm64-v8a/libnode.so
|
||||
STORED assets/nodejs-project.zip <- nuestro bundle modificado
|
||||
STORED resources.arsc <- CRITICO: debe ser STORED
|
||||
|
||||
--------------------------------------------------------------
|
||||
INSTALACION EN ANDROID
|
||||
--------------------------------------------------------------
|
||||
1. Desinstalar la version original de Oasis primero
|
||||
(firma distinta -> Android rechaza la instalacion)
|
||||
2. Pasar el APK al dispositivo (Telegram Guardados, ADB, MTP)
|
||||
3. Instalar desde el gestor de archivos
|
||||
4. En GrapheneOS: permitir "Instalar apps desconocidas" para
|
||||
el gestor de archivos la primera vez
|
||||
|
||||
--------------------------------------------------------------
|
||||
VERIFICAR APK ANTES DE DISTRIBUIR
|
||||
--------------------------------------------------------------
|
||||
python3 -c "
|
||||
import zipfile
|
||||
with zipfile.ZipFile('oasis-v0.6.8-modded.apk') as z:
|
||||
for i in z.infolist():
|
||||
if i.filename in ['resources.arsc'] or i.filename.endswith('.so'):
|
||||
t = 'STORED' if i.compress_type == 0 else 'DEFLAT'
|
||||
print(t, i.filename)
|
||||
"
|
||||
-> resources.arsc debe ser STORED
|
||||
-> .so deben ser DEFLAT (como en el original)
|
||||
|
||||
~/Android/Sdk/build-tools/35.0.1/apksigner verify --verbose oasis-v0.6.8-modded.apk
|
||||
-> debe decir "Verifies"
|
||||
|
|
@ -237,6 +237,7 @@ a.logo-icon img.logo-icon {
|
|||
gap: 6px !important;
|
||||
padding: 6px 0 6px 0 !important;
|
||||
align-items: center !important;
|
||||
justify-content: center !important;
|
||||
}
|
||||
.panel-quicklinks::-webkit-scrollbar { display: none !important; }
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue