Недавно вдруг пришла мысль по поводу безопасности в андроиде. Одна из проблем при эксплуатации переполнений буфера - рандомизация адресного пространства (ASLR). Сложно (=почти невозможно) угадать с адресом загрузки того или иного модуля или с адресом загрузки шеллкода на стек, поэтому ASLR даёт весьма неплохой плюс к защите программ в системе.
А теперь давайте посмотрим на андроид. Чтобы сэкономить на времени загрузки и на потребляемых ресурсах, при старте системы грузится процесс, который загружает в себя все библиотеки и окружение виртуальной машины, после чего, при надобности, создаёт копию себя и в копии уже "по-быстрому" запускает нужное приложение (которое само по себе куда меньше использумых им библиотек). Что мы имеем в итоге? В каждом процессе каждого приложения все библиотеки будут расположены по одним и тем же адресам! Да, адреса эти рандомизированы, но одни и те же в пределах одного запуска системы. Так что, ASLR в андроиде, можно сказать, и нет.