Android: решение проблемы с крашами при проверке лицензии на 5.0

Представьте себе компанию, у которой есть какое-то SDK для абстрактного устройства. После обновления прошивки этих устройств до последней версии начинают крашится некоторые приложения. Эта компания знает о проблеме, но не обновляет sdk для исправления оной. Да, речь про Google. Уже не первый раз сталкиваюсь с такой проблемой, когда их сорсы допиливать приходится =/

В общем, в классе LicenseChecker необходимо чуток подправить метод checkAccess. Сейчас код по инициализации выглядит так:

 boolean bindResult = mContext
   .bindService(
      new Intent(
         new String(
Base64.decode( "Y29tLmFuZHJvaWQudmVuZGluZy5saWNlbnNpbmcuSUxpY2Vuc2luZ1NlcnZpY2U="))),
         this, // ServiceConnection.
         Context.BIND_AUTO_CREATE);

Как видим, юзается implicit Intent. Сдалем его explicit.

Intent serviceIntent = new Intent(
   new String(
Base64.decode( "Y29tLmFuZHJvaWQudmVuZGluZy5saWNlbnNpbmcuSUxpY2Vuc2luZ1NlcnZpY2U=")));
serviceIntent.setPackage("com.android.vending");

boolean bindResult = mContext
   .bindService(
      serviceIntent,
      this, // ServiceConnection.
      Context.BIND_AUTO_CREATE);