Я играл с этим раньше, потому что у меня также была комбинация платного / бесплатного в нескольких приложениях, а ручной процесс показался слишком утомительным.
Я создал рабочее пространство с тремя проектами
1. Библиотечный проект со всем общим кодом и ресурсами
2. Бесплатная версия
3. Платная версия
Все, что вам нужно сделать в реальных устанавливаемых проектах, это зарегистрировать действия. Они могут жить в проекте общей библиотеки, но вам просто нужно зарегистрировать их с полностью определенными именами в манифестах проектов вашего приложения (то же самое относится и к пользовательскому классу приложения, если вы его используете).
Вы можете использовать PackageManager, чтобы определить полное имя запущенного приложения и включить или отключить функцию.