GrapheneOSでOsmandが遅い原因はhardened memory allocatorだった
GrapheneOS – When an app is slow
GrapheneOSを約1年使う筆者は、Pixel 8でOsmandだけが他のAndroid端末より明らかに遅いことに気づく。原因はhardened memory allocatorのオーバーヘッドで、地図スクロール時のデータ読み書きが影響していた。アプリ単位でこの保護を無効にすると速度が戻る。セキュリティは下がるが、Osmandは地図更新以外に通信しないため許容できるという。
hardened memory allocatorを無効にするには、アプリアイコンを長押しして「情報」を選び、「Exploit protection」までスクロールする。保護は全体的に有効のままにし、hardened memory allocatorだけを無効にすればよい。
HNでの議論
57- negative_zero
おかしいな。GrapheneOSを入れたGoogle Pixel 7を使っているけど、OsmAndはエクスプロイト保護のオプションを一切無効にしなくても完璧に動いているよ。
- Groxx
へえ。そうか、9aでそれを無効にしたら確かに目に見えて速くなったよ。彼らは何を違うやり方をしているんだろうな…
- aucisson_masque
このハードニング機能って、無効にしなきゃいけないなら何の意味があるんだ?
Androidはいくらでもいじれるけど、このOSはプライバシーやセキュリティのために作られたわけじゃない。アプリ開発者はGrapheneOSのメモリ割り当て機能(他にも色々あるけど)を壊すかどうかなんて絶対に確認しないから、デフォルトで無効にするんだよ。
それに、そもそもPlay Integrityを尊重しないROMで動かすこと自体が前提になってるしな。
- hadi77ir
leaflet.jsを使ったウェブサイトなら、このケースでパフォーマンスが良いのか悪いのか気になるな。もし良いなら、問題はOsmAnd側にあるのかもしれない?
- pjmlp
たぶん本当の解決策は、アプリケーションを改善するか、置き換えることだよ。