Первая проблема которая приходит на ум: имена пакетов.
Обычно их разными делают,
com.company.package
и
com.company.package.pro
, заодно где надо в коде можно проверять Pro или нет по имени пакета, в том числе встречал "взломостойкие" реализации проверки имени пакета, правда, они были не в Java, а в JNI, поскольку Java и взломостойкость вообще не совместимые понятия, и скорее думать следует об этом, а не о репозиториях, реверс-инжиниринг сейчас конечно далеко не в пике развития, но для такой примитивной задачи как удаление рекламного SDK или иной "взлом" APK, найти человека не составляет большой проблемы, если ваше приложение того стоит.