I'm using AAsset_getLength, AAsset_seek and AAsset_getRemainingLength to read the whole file directly.
In the console it still only shows up to 979-980 characters. I tried substituting null terminators but it didn't help. Either there's other binary characters that are preventing the full string from being shown in logcat or that's the max character string that logcat can show.
Also, png now says:
03-28 00:38:33.410: A/libc(26857): bionic/libstdc++/src/pure_virtual.cpp:6: void __cxa_pure_virtual(): assertion "!"Pure virtual function called. Are you calling virtual methods from a destructor?"" failed
03-28 00:38:33.410: A/libc(26857): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 26872 (engame.pathogen)