In short, open the source, change Security.addProvider(something);
to Security.insertProviderAt(something, 1);
Android 5.0 (and 5.0.1) has a problem with SpongyCastle (https://code.google.com/p/android/issues/detail?id=68562)
Crema Android App also has this problem, but it can be avoided by following instruction on the Spongy Castle home.
I already fixed mine, but can't share it due to legal issue. Instead, I share DIY fix instruction.
- Get crema APK using any tool. Let me call it crema.apk.
- Install apktool
- Decompile it:
apktool d crema.apk
- Edit crema/smali/kr/co/hancom/ebook/drm/client/keph/KEPHDRMClientAgentFactory.smali
- Find
invoke-static/range {v21 .. v21}, Ljava/security/Security;->addProvider(Ljava/security/Provider;)I
- Change it to following:
const v22, 0x1
invoke-static/range {v21 .. v22}, Ljava/security/Security;->insertProviderAt(Ljava/security/Provider;I)I
- Recompile:
apktool b crema
- New APK is in
crema/dist/crema.apk
- Sign it: http://developer.android.com/tools/publishing/app-signing.html#signing-manually
- (Optional) Uninstall previous one:
adb uninstall co.kr.kepub.crema
- Install new one:
adb install crema/dist/crema.apk
- Run the app.
- Enjoy!
크레마, 안드로이드, 롤리팝, 크래시, 에러