Я пытаюсь захватить 784 Мбайт памяти. Да, я знаю, что это много для 32-битного телефона, но до Android 5.0 работал следующий вызов:
mmap(0, 0x31000000, PROT_NONE, MAP_ANON | MAP_SHARED, -1, 0);
Однако на трех разных устройствах от разных производителей обновление до Android 5.0 нарушило это. Я предполагаю, что это некоторое изменение в функции распределения памяти в 5.0; возможно, нужно передать разные флаги?
Здесь сообщение об ошибке возвращается в logcat:
E/libc﹕ mmap fail (pid 9994, tid 10125, size 822083584, flags 0x21, errno 12(Out of memory))