Чтобы приложение Android сохранялось после заводских сбросов, оно (приложение) должно быть приложением system , а устройство должно быть рутованным.
Начиная с Android 6.0 (Marshmallow) , если вы поместите свое приложение на раздел / system из пространства пользователя (скопировав в / system / app от имени root), это предотвратит устройство из-за загрузки dm-verity. Это было там с 4.4 (Киткат) , но было необязательно. Читайте здесь .
Так что логически вам не повезло с новыми устройствами, если вы не являетесь поставщиком устройств.