yashsingh1/xdaforums huggingface dataset:
[Nook Touch General] LastSilmaril:
Yeah dude no worries.
[Nook Touch General] LastSilmaril:
alpha5; BN QuickNav Buttons now assignable, but icons don't change.

So I discovered a few typos in my earlier work on BNGQNB.smali and in XorUtils.smali and corrected them, and removed that small 'optimization' I mentioned in the event I was mucking with an 'atomic' action. Not only did the Nook boot up, but assignments can be made to every button on the QuickNav bar except for the Glowlight button - and that, I believe, is only because we have yet to hack that into NookTouchTools.apk, since the Glowlight button still successfully brings up the Glowlight menu. (I added another switch to the XorUtils launchButton(); that's apparently all that's necessary to get that to work. Originally I had a typo in this switch; this was fixed.)

However, it looks like the updateQNButtonIcon needs to be updated with the correct values for the bitmaps used for the icons, as what comes out is a god-awful mess. I really don't know how to do this...so in the meantime I went and put back the stock init() method into BNGQNB.smali, so that updateQNButtonIcon is never called. Once that is done, button assignment still works - the BNGNQB.smali is now totally stock except for Xor's onClick() method - but the icons themselves remain stock, so you'll have to remember what you button assignments are until we can somehow figure this out.

The longpress functionality is still not fixed as well - it will bring up Xor's RecentApps dialog by default and still simultaneously toggles the Glowlight.

The latest services.jar (alpha5) is attached.
[Nook Touch General] probbiethe1:
Wow this is awesome!! Great work/
[Nook Touch General] dr_diem:
LastSilmaril your work-rate continues to astound! 48 hours ago we barely had anything working and now 80% of the functionality is there. Thank you so much for sticking with this :victory:
[Nook Touch General] LastSilmaril:
Dude, it's my pleasure. I absolutely detest ButtonSavior (I mean, credit to the guy who wrote it, but a home button is basic functionality.)
[Nook Touch General] dr_diem:
Yeah that's exactly my feeling. I registered Button Saviour so as to be able to make it _only_ take me to Android's home screen, but I'm well happy not now not need it at all (at least, not until my 'n' button breaks...).

Also if I'm honest I (for now at least) don't miss the QuickNav icon customisation because (since B&N's home screen is entirely pointless in my opinion) the only remapping I've done is to make the QuickNav Home key take me to Android's home screen, so it's icon still makes perfect sense!
[Nook Touch General] LastSilmaril:
Hmm, but then how do you get to b&n home? Or do you not use/care about it at all?
[Nook Touch General] dr_diem:
Like I said, I think their Home screen is pointless. Worse in fact, I see it as them pushing a marketing opportunity on their Nook community. Me, I consider the Library screen to be a more natural 'home' screen for the Nook UI.

Are you happy with the thread's updated first post BTW? I PM'ed you with some details, and copied XorZone to get his take too ;)
[Nook Touch General] LastSilmaril:
I just replied to that PM, but I don't think I hit reply all, so if you can fwd it to Xor that would be great.

And sorry, read your post too quickly, heh :)
[Nook Touch General] dr_diem:
Done :)

Figured :laugh:
[Nook Touch General] ladykayaker:
Gee Guys! I have read and re-read this post and while I get the jist of it, I am lost.

Can you translate this into English for those among us who are not nearly as brilliant as the rest of you?
[Nook Touch General] dr_diem:
Okay, well, here is an explanation from start to finish.

Once you have a rooted Nook, there's no nice clean way to switch between the Nook UI and the Android UI. The most common solution is an Android app called ButtonSaviour, that's designed to put the set of common Android device buttons (home, back, menu, etc.) under an on-screen overlay icon so you can access them if the 'real' buttons are broken (or, in the Nook's case, not present in the first place). This is effective but not elegant. XorZone (one of the other forum members) developed an app for the Nook Simple Touch called NookTouchTools to allow reconfiguration of the function of most of the Nook's buttons, but in order to work it depends upon modifications to a couple of the files that are part of the Nook's own software. Since these files tend to change with each release of the Nook, the currently available version of the modified files on the official NookTouchTools thread do not work on the Nook Simple Touch with Glowlight (in fact installing them causes it to reboot continuously). The purpose of this forum thread then is to re-engineer those two files for the benefit of the Nook Simple Touch with Glowlight.

If you have a rooted NSTG and want to switch neatly between it being a Nook and it being a general purpose Android tablet, the very first post on this thread explains how to install all this.

Does this explain things clearly?
[Nook Touch General] LastSilmaril:
The lady posted in another thread. It's unclear if she understands how to root or what adb is, and while the latter may be simple, I don't quite remember where to find the best guide for installing the Android devkit with the debug bridge.
[Nook Touch General] ladykayaker:
yes - I have the rooted nook with GL, and have adb and adbwireless running.

With adb all that I have done is confirmed that the device is connected, and used it to wirelessly reboot the nook.

apart from that I haven't run any other commands from adb

In my previous life BC (before children) I was a computer programmer - so I have a bit of a techy background.

I completely agree with the inelegance of button savior and the need to switch back and forth from nook UI to android UI.

I would love to be able to use the nook quicknav home button to go to android home.

I have read the thread and have been following it for some time now, and it seems some have made progress and achieved this, but I am not clear what the steps are to achieve this. Can you clarify the steps to take?
[Nook Touch General] LastSilmaril:
OK great, that makes it much simpler. Xor already explained it in his original thread, but let's just recap. What you need to do is this:

0) Before anything, I suggest you learn how to make a backup if you have not done so already. I'm not gonna repeat all the steps here; so here's all the info you need.

1) Download the jars from the first post in this thread.

2) Download the NookTouchTools apk from XorZone's post.

3) Start adbwireless on your Nook and adb connect to it from your computer.

4) You should backup the old framework jars now, too, since it's much easier to restore them directly than to restore a complete .img backup (that you hopefully made in step #0). The last parameter specifies the name of the destination file, just like with the cp command; if you specify nothing, the filename of the copy of the file will be identical to that of the source. That'll get confusing, so I appended _stock_115 to the filename. Note that if you decide to push these back, you need to remember to remove that suffix!

adb pull /system/framework/android.policy.jar android.policy_stock_115.jar
adb pull /system/framework/services.jar services_stock_115.jar

I have backups of these too, but why rely on us?

5) You now want to make the system partition writable, so you could push my modified jars to it.

adb shell mount -o remount,rw /dev/block/mmcblk0p5 /system

6) You can now push over my modified jars. Navigate to the directory where you unzipped them from the command line, and then:

adb push services.jar /system/framework/
adb push android.policy.jar /system/framework/

7) You'll now want to install the NookTouchTools apk. Navigate to the directory where you downloaded it, and then:

adb install NookTouchTools-1.0b2.apk

Note that this is a bigger file so it'll take a bit longer than pushing over the jars did.

8) On your Nook, open NookTouchTools, and hit 'Fix Permissions'.

9) When that's over, hit the 'clear dalvik cache' button in NookTouchTools; this will trigger a reboot. If this seems to take too long, well, IT IS NOW TIME TO PANIC

a) ...but actually, uh, no, you're done. The reboot WILL take significantly longer than usual, but it should work. Don't interrupt it. You can now use the NookTouchTools app to assign buttons, to the extent that we have described above.

All of the above code in a nutshell:

adb pull /system/framework/android.policy.jar android.policy_stock_115.jar
adb pull /system/framework/services.jar services_stock_115.jar
adb shell mount -o remount,rw /dev/block/mmcblk0p5 /system
adb push services.jar /system/framework/
adb push android.policy.jar /system/framework/
adb install NookTouchTools-1.0b2.apk
[Nook Touch General] Salar.m:
??? :(

Hey my friend,

I know what this thread for (tnx to Dr_Diem), I understood every thing you said (tnx to you), I understood what every line (you wrote) is for...

But the only problem is I haven't worked with adb, and I don't know where to write all the commands you wrote or even how to connect my device to PC in order to use adb... All I've done is this:

- downloaded and installed a 67mb file named "installer_r20.0.3-windows.exe" that seemed to be the installer of ADB for Windows

- have a folder named "android-sdk" in my program files, which has two .exe files in it named: "AVD Manager" and "SDK Manager"

- and, in "SDK Manager" I just downloaded the "Android 2.1" files...

now what should I do? how to connect to PC using adb? plz help me :crying:
[Nook Touch General] LastSilmaril:
You should now add the android-sdk platform-tools folder to your path. Ask around, Google around dude; I'm going to bed. Or, wait till morning...

Also, if you could do me a favor and remove that whole quotation of my giant post from your post, that would be great.
[Nook Touch General] dr_diem:
alpha 5 bug?

Hi folks,

So I've found a potential bug with the current (alpha 5) release of our jars. Although I have not touched the assignment for the QuickNav Shop button (it is shown as configured to launch 'B&N Defaults' in NookTouchTools), clicking it now does nothing (other than hiding the QuickNav bar). The log tells me this:

10-21 13:51:59.254 I/ActivityManager( 770): Starting activity: Intent { act=com.bn.intent.action.shop flg=0x14400000 }
10-21 13:51:59.254 W/System.err( 770): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.bn.intent.action.shop flg=0x14400000 }
10-21 13:51:59.254 W/System.err( 770):	at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408)
10-21 13:51:59.261 W/System.err( 770):	at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
10-21 13:51:59.261 W/System.err( 770):	at android.app.ApplicationContext.startActivity(ApplicationContext.java:557)
10-21 13:51:59.261 W/System.err( 770):	at com.android.server.status.XorUtils.launchActivity(XorUtils.java:66)
10-21 13:51:59.261 W/System.err( 770):	at com.android.server.status.XorUtils.launchButton(XorUtils.java:87)
10-21 13:51:59.261 W/System.err( 770):	at com.android.server.status.BNGossamerQuickNavbar.onClick(BNGossamerQuickNavbar.java:53)
10-21 13:51:59.261 W/System.err( 770):	at android.view.View.performClick(View.java:2373)
10-21 13:51:59.261 W/System.err( 770):	at android.view.View.onTouchEvent(View.java:4197)
10-21 13:51:59.261 W/System.err( 770):	at android.view.View.dispatchTouchEvent(View.java:3727)
10-21 13:51:59.261 W/System.err( 770):	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:904)
10-21 13:51:59.261 W/System.err( 770):	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:904)
10-21 13:51:59.261 W/System.err( 770):	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:904)
10-21 13:51:59.261 W/System.err( 770):	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:904)
10-21 13:51:59.261 W/System.err( 770):	at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
10-21 13:51:59.261 W/System.err( 770):	at android.os.Handler.dispatchMessage(Handler.java:99)
10-21 13:51:59.261 W/System.err( 770):	at android.os.Looper.loop(Looper.java:123)
10-21 13:51:59.261 W/System.err( 770):	at com.android.server.ServerThread.run(SystemServer.java:434)

which suggests a bug in the XorUtils jar we have now (sending the wrong Intent for the Shop button?), but before I dive into the code I'd like to know whether anyone else who has implemented our jars has since started to have the same behaviour with this button?

Cheers,

yan
[Nook Touch General] LastSilmaril:
I am also having this issue. Sorry for not testing all the way through.

In the stock onClick() method, the intent for shop is the same as what's in XorUtils. So that's not it. Looking in launchActivity()...I'm not quite sure how the switch here works - this seems to be where the injections happen, and that's what the switch seems to be for, looking for which injection to do - but the provision for the ActivityNotFoundException is in launchActivity.

OK, so I went in NookTouchTools and assigned the quicknav shop action to the Shop app manually; this makes the button work. This points to com.bn.nook.shop. It looks like this was the 'action' that didn't manage to trigger properly. I changed the line in launchButton() to reference the action directly to see what would happen, and rolled a new services.jar. Same problem. I'm guessing our issue is not here, but elsewhere? Hmm...

Until this is fixed, selecting the 'Shop' app as the trigger for the shop button inside NTT.apk is an OK workaround, but hopefully we'll get to the bottom of this soon...
[Nook Touch General] dr_diem:
Thanks man, both for the confirmation and the workaround. I'll update the first post with the bug and workaround later on :good:
[Nook Touch General] LastSilmaril:
Some more results using the stock services.jar, prefaced by what was the state of the Shop.apk before navigating away to some other activity in (parentheses):

(Hit shop key on Nook Bootup)
I/ActivityManager( 784): Starting activity: Intent { flg=0x10400000 cmp=com.bn.nook.shop/.MainActivity }
D/MainActivity( 1535): +goToStorefront
D/DeviceManagerBroadcastReceiver( 1366): action (com.bn.devicemanager.ACTION_DEVICE_USAGE)
(Switched away from main screen)
I/ActivityManager( 784): Starting activity: Intent { flg=0x10600000 cmp=com.bn.nook.shop/.MainActivity }
(Switched away from NYT Bestsellers list)
I/ActivityManager( 784): Starting activity: Intent { flg=0x10600000 cmp=com.bn.nook.shop/.ResultsActivity }
V/Activity( 1535): performResume()
(Switched away from specific book)
I/ActivityManager( 784): Starting activity: Intent { flg=0x10600000 cmp=com.bn.nook.shop/.productdetails.ProductDetailsActivity }
V/Activity( 1535): performResume()
[Nook Touch General] Renate:
I'd like to help here, but I've never used the Nook Touch Tools or the B&N Shop application.

I don't use (and can't even get to) the QuickNav at all.

I modified services.jar only for landscape orientation related things.

In any case, when dealing with intent issues the application manager is your friend.

Start a specific activity:

am start -n com.android.settings/.BatteryInfo

Open a file by MIME type:

am start -d file:///sdcard/book1234.epub -t application/epub

Perform a specific action:

am start -a com.destructo.intent.DESTROY

Always check for preferred-activities in /data/system/packages.xml tripping you up.
[Nook Touch General] LastSilmaril:
Right, I know you don't use this app, but also that you know much more about internals than I do. Futzing around with application manager..."am start -a com.bn.intent.action.shop" does not work and complains about a nonexistent action. But, "am broadcast -a com.bn.intent.action.shop" DOES work properly. Reading a bit and observing, it seems like this is because com.bn.intent.action.shop is handled by a programmed receiver named ShopReceiver (see my big post above). Now, just what the heck has changed to prevent this from executing properly with XorUtils, I'm not sure, but at least I have a better idea of what to look for. Thanks for chiming in.
[Nook Touch General] LastSilmaril:
Alpha10; fixes stupid Shop nonsense.

Thanks to renate's tip to look at am, I figured out that when an intent is handled by a programmed receiver and is not hardcoded to a specific action in AndroidManifest.xml, it needs to be invoked using 'broadcast' and not 'start'. This is also true programmatically: a 'normal' intent gets invoked by

Landroid/content/Context;->startActivity(Landroid/content/Intent;)V

whereas one handled by a programmed receiver should be invoked like so:

Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V

There actually is a boolean parameter to XorUtils->launchActivity that handles this, but it is never flipped on when called from launchButton, even in the case that the user hit Shop. Moreover, the code inside launchActivity for handling intents that need to be broadcast was incomplete (did not call the 'HideQuicknav' method). I fixed these two issues, and now the Shop button works like it's supposed to. Actually, the fact is, I don't understand how the Shop button wasn't broken in the 1.1.x, since the Shop apps (and thus the AndroidManifest.xml and such) are identical between the two - so it's possible I'm still missing something.

This doesn't matter practically speaking though. Switching to the Shop app from the quicknav bar now works just fine, and assigning a different action to it still works without incident.

EDIT: For those who are interested, the stock onClick() also effectively has a bit-flip type thing too - it puts the "com.bn.intent.action.shop" string in a different register than the other intents, and then checks if the 'start' register is empty and then whether the 'broadcast' register isn't. If both those things are true then a sendBroadcast() gets executed.
[Nook Touch General] LastSilmaril:
I noticed while looking through the stock onClick method has a disableEpd() command as a matter of course in it. I dropped it into launchActivity() to see what would happen, but couldn't really discern much of a difference. I think that without this command the screen is slightly cleaner on switches, too, so I decided against making another release.

Here's the line:

invoke-static {v7, v8, Landroid/hardware/EpdController;->disableEpd(Ljava/lang/String;I)V

(Of course, when I dropped this into launchActivity(), I also, copied over the parameters that were in v7 and v8 and assigned them to other registers, which I knew weren't being used.)

It would be cool to learn more about the EpdController, e.g. to make text more bold in order to make up for lost contrast from the the stock Nook Simple Touch.
[Nook Touch General] Renate:
Oops, I did fail to point out that there is StartActivity, StartService and SendBroadcast.

All three use intents, are different and are not interchangeable.

I did do this diagram, which while not containing any new information, presents the B&N interactions in an interesting way:

http://xdaforums.com/showthread.php?p=24061856#post24061856
[Nook Touch General] LastSilmaril:
That's a very cool resource Renate - thanks for sharing! I'm not sure if it'll help with this project directly but it's 'good to know'.

-e
[Nook Touch General] ladykayaker:
Thanks to LastSimaril for the clear explanations. So much happier with my nook now!

AWESOME job to all who worked on this!!!
[Nook Touch General] Nooksimple:
Thank you for ur develepmnet.

Hope that longpress will not trigger quick nav.
[Nook Touch General] LastSilmaril:
Hey all,

Sorry for dropping off for so long. I hope to get back to this project within the next week or so. Can't promise that though...

-e
[Nook Touch General] probbiethe1:
I saw on the OP that the list of to do's has Assigning icons to remapped B&N QuickNav buttons. This thread has helped me out so much with remapping the buttons I thought I would share the way I changed the quicknav button icons. I just followed this guide here http://xdaforums.com/showpost.php?p=20069276&postcount=8 to pull the framework-res.apk and then you can edit any image using 7zip. I hope that helps and if you need any specifics let me know.
[Nook Touch General] dr_diem:
Thanks for thinking of us probbiethe1!

As it goes further development of this solution is now unlikely given that jeff_kz wrote a new mod from scratch called Nook Touch Mod Manager that almost completely supersedes Nook Touch Tools, including customising the Quicknav icons. The only thing it can't do that NTT can is customise the four side bezel buttons. It is not possible to install both solutions in parallel, since both depend upon modifications to two of the Nook's framework jars and merging the two sets of mods will likely break functionality for one app or the other.

Cheers,

Ian
[Nook Touch General] LastSilmaril:
As I recall, the button-mod actually worked out of the box without my changing anything.
[Nook Touch General] probbiethe1:
O very cool. I had know idea that there was another method to remap the buttons. Thank for sharing.
[General Questions and Answers] tazzy_bandit:
how do i get netflix on my windows htc tilt 2?
[Samsung Galaxy Mini] tizzi717:
The last official cyanogen mod is a good rom? is it fast and stable? Any bugs? I hope that everithing is working :)
[Samsung Galaxy Mini] Prasgeek:
Ya its a good ROM. :)
[Samsung Galaxy Mini] tizzi717:
Thank you

for the answer. And what about overclock? Is it work in settings-->performance or i shoul install an application like set cpu?
[Samsung Galaxy Mini] ju2:
For my own, OC to 844 Mhz and all strategies are working.
[Samsung Galaxy Mini] wildstar1010:
no bugs;)
[Samsung Galaxy Mini] rhonalddean:
is there any other "user review" about this cm7 version?... those who already used it... and that would be a great reference if i'm going to flash this Rom or not...
[Samsung Galaxy Mini] luckywiseguy:
I'm currently using CM7 7.2.0 RC3 and there are bugs of course on it.

You must visit this link for you to further understand the the benefits/bugs of using that ROM.

In my opinion, it's really fast and stable.

You can already overclocked the performance of your CPU with CM7 7.2.0 RC3, for me, 748MHz is the stable Max. CPU Frequency and you must tick Set on Boot for you to Restore CPU Settings on Boot.

DSP Manager is a known bug here, try to flash this ROM if you don't have and tweak its Phone Speaker Settings, apply the changes and try to play a music file, you might hear a broken sound on your phone speaker.

But Using DSP Manager on Headset is really good.

Bugs will produce on a case to case basis, for example, once you installed different application(s) which is not compatible with this ROM or your SGM, how you install or use such application might show some bugs.

Just flash this ROM and don't afraid to try tweaking it, it's worth giving a try :)
[Samsung Galaxy Mini] melvinsunnyiype:
I used it for 2 days ..not bad

DON'T FORGET TO HIT THANKS IF IT IS USEFUL
[Samsung Galaxy Mini] berceniqgil:
link anyone?:)

edit:found it already