The Daily Minus Dave
From nookDevs
I think it's absolutely ridiculous you can't get rid of this, whether you bought a nook last december or yesterday, the Dave Barry article is always first on the list. I got so tired of seeing it I decided to get rid of it, and I did.
Contents |
Download URL
http://www.multiupload.com/YI5Y37XPHU
Instructions
Wherever you ADB from, type:
adb shell
Then in the ADB shell:
su rm /system/app/TheDaily.apk pm uninstall com.bravo.thedaily # This should return success exit
Then back in your original console:
adb install TheDailyMinusDave.apk
Enjoy a Dave Barry-free nook.
Reversing Tutorial
Items Needed
- A rooted nook
- apktool ()
- Android SDK
Using the SDK, we'll want to grab the APK file first using ADB.
adb pull /system/app/TheDaily.apk
Then We'll want to use apktool to disassemble the java bytecode
apktool d -r TheDaily.apk
Then we'll want to go into the newly created directory
cd TheDaily
Then into the smali folder
cd smali
Now we need to find this annoying Dave Barry reference:
ben@server:~/TheDaily/smali$ grep -R "Dave" * com/bravo/thedaily/Daily.smali: const-string v5, "Dave Barry explains nook. Sort of." com/bravo/thedaily/Daily.smali: const-string v8, "Dave Barry"
There it is!
We then open up the com/bravo/thedaily/Daily.smali in a text editor and find "Dave Barry"
Going to the top of the function where we find "Dave Barry", we see it's in a method called "createCannedList"
That seems like exactly the sort of thing we want to remove, so we search the smali for references to "createCannedList"
Here it is!
.line 313 :goto_0 :try_start_1 invoke-direct {p0}, Lcom/bravo/thedaily/Daily;->createCannedList()V :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1
Now all we have to do is remove that invoke-direct line, and Daily.createCannedList() won't be called, and therefore NO DAVE BARRY!
Now we need to re-package up the APK.
apktool b TheDaily TheDailyMinusDave.apk
We'll create a key for signing the APK using the JDK:
keytool -genkeypair -v -keystore blah.keystore -alias blah -keyalg RSA -keysize 2048 -validity 10000
Enter information, doesn't really matter if it's real or not. This will create your keystore you'll use to sign the APK. Now let's sign the APK.
jarsigner -keystore blah.keystore TheDailyMinusDave.apk blah
After entering your password, you should now have a valid APK file. You could use zipalign on it, but we're going to skip that step. Now we want it on the device.
B&N apps are installed to /system/app and for some reason I can't uninstall it unless I delete the apk first, so here's what I do
adb shell
In the shell I do
su rm /system/app/TheDaily.apk pm uninstall com.bravo.thedaily exit
Back at my console prompt I can then ADB install the new APK and it's Dave Barry free!
adb install TheDailyMinusDave.apk