[BUG]: libwebcrypto.so isn't 16 KB page aligned
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 52/100
Direção de pesquisa
Start with mobile/pubspec.lock to trace the webcrypto, webpush_encryption, and unifiedpush versions, then inspect .github/workflows/android-release.yaml for the Android build checks. Check libwebcrypto.so with readelf -lW and test loading or push decryption on the 16 KB Android emulator. Done means its PT_LOAD alignment is at least 0x4000 and CI checks every .so.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Context
Android devices with 16 KB memory pages (some Android 15+ devices, and the 16 KB emulator images) can only load native libraries whose ELF LOAD segments are aligned to at least 16 KB.
Checking a release APK built from main (arm64-v8a):
| Library | LOAD alignment |
|---|---|
| libapp.so, libflutter.so | 64 KB |
| libdartjni.so, libdatastore_shared_counter.so, libsqlcipher.so | 16 KB |
| libwebcrypto.so | 4 KB |
The zip alignment (zipalign -c -P 16) passes; only libwebcrypto.so fails. It comes from webcrypto 0.6.0, pulled in by unifiedpush → webpush_encryption, so it is new with push notifications (#204).
What to do
- Find out when
libwebcrypto.sois loaded (at start-up, or only when a push message is decrypted) and what happens on a 16 KB device: crash, or notifications silently failing. - Try
webcrypto 0.6.1(the latest) and check its alignment; otherwise look at a newerwebpush_encryption/unifiedpush, or report it upstream. - Add an alignment check for every
.soto CI, so this can't come back unnoticed.
Where to look
mobile/pubspec.lock (webcrypto, webpush_encryption), .github/workflows/android-release.yaml.
Good to know
To check a library: read the p_align of its PT_LOAD program headers (readelf -lW lib.so); it must be 0x4000 or more. Test on the "16 KB page size" Android emulator image.
- Linguagem predominante
- Dart
- Estrelas
- 9
- Forks
- 5
- Merge médio
- 49min
- PRs com merge (30d)
- 34
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Sem modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de CommandLineCoding/Elephant
-
area: mobile chore good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
CommandLineCoding/Elephant#247 ·
Mantenedores costumam responder em até 1 dia
-
area: mobile bug good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
CommandLineCoding/Elephant#245 ·
Mantenedores costumam responder em até 1 dia
-
area: mobile enhancement good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
CommandLineCoding/Elephant#183 ·
Mantenedores costumam responder em até 1 dia
-
area: mobile difficulty: medium enhancement
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 56/100
CommandLineCoding/Elephant#249 ·
Mantenedores costumam responder em até 1 dia
-
area: mobile chore difficulty: medium testing
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 66/100
CommandLineCoding/Elephant#248 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de CommandLineCoding/Elephant
Issues semelhantes
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 76/100
livekit/client-sdk-flutter#1281 ·
Mantenedores costumam responder em até 4 dias
-
android bug priority: P1 qa
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
GHRik/bielik_oneclick_launcher#55 ·
Mantenedores costumam responder em até 1 dia
-
SchedulerBinding.requestPerformanceMode(mode) does not forward the requested mode to the engine.Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
carp demo apps enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
carp-dk/carp.sensing-flutter#670 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100