Здесь есть небольшое недоразумение. Для Android понятие «системное приложение» - это то, которое устанавливается на образ системы, оно говорит ничего о том, от какого разработчика оно пришло. Таким образом, если OEM решит предварительно загрузить Facebook в образ системы, это системное приложение, и оно останется таковым, независимо от того, где будут установлены обновления приложения. Они точно не будут установлены на образ системы, поскольку он доступен только для чтения.
Итак, ApplicationInfo.FLAG_SYSTEM верен, но это не тот вопрос, который вы задаете. Я думаю, вы спрашиваете, подписан ли пакет с помощью системного сертификата. Что не обязательно является хорошим показателем чего-либо, это может варьироваться от устройства к устройству, и некоторые удивительные компоненты на Android Android не подписаны сертификатом системы, даже если вы ожидаете, что они будут.
В более новых версиях Android существует новый путь / system / priv-app /, который пытается быть местом установки «реальных» системных приложений. Приложения, которые предварительно загружены в образ системы, затем попадают в / system / app /. См. Приложение AOSP Privileged vs System