[N2E] Nook 2nd Edition Touch - Development - Nook Touch Android Development

Until we get a dedicated forum, at that time this thread can be moved, we can talk about development and progress aside from rooting. I'll start off with remapping the buttons on the front of the device.
In DOS you can pull the keyboard map file below
Code:
adb pull /system/usr/keylayout/TWL4030_Keypad.kl
Once pulled you can edit it in a program like Notepad++ and edit the following lines
Code:
key 407 RIGHT_NEXTPAGE
key 412 LEFT_NEXTPAGE
key 139 LEFT_PREVPAGE
key 158 RIGHT_PREVPAGE
You can change LEFT_NEXTPAGE to MENU and LEFT_PREVPAGE to BACK and now you have hard mapped Menu and Back buttons. I have ordered my own nook I've just been messing with a co-workers so I haven't found the Power button or "n" button mappings if they are in fact in the file.
Finally you can push the file back to the nook
Code:
adb shell mount -o rw,remount -t ext2 /dev/block/mmcblk0p5 /system
adb push TWL4030_Keypad.kl /system/usr/keylayout/
adb shell chmod 644 /system/usr/keylayout/TWL4030_Keypad.kl
zonyl said:
I've locked it up before when trying to boot nookie. Called tech support and they told me that holding down power button more than 20 secs, does a hardware reboot. Works.
Click to expand...
Click to collapse

elmonica said:
I installed the Android app store, but I am receiving the following error message:
"For security your phone is set to block installation of applications not sourced in Android Market"
How do I turn that off?
Thanks.
Click to expand...
Click to collapse
This will allow non-market installs [unzip sqlite3.zip]
Code:
adb shell mount -o rw,remount -t ext2 /dev/block/mmcblk0p5 /system
adb pull /data/data/com.android.providers.settings/databases/settings.db settings.db
sqlite3 settings.db "update secure set value=1 where name='install_non_market_apps';"
adb push settings.db /data/data/com.android.providers.settings/databases/settings.db
del settings.db
Also if you want to install SQLite3 to the N2E you can just push it to the device. [unzip sqlite3 (push to n2e).zip]
Code:
adb shell mount -o rw,remount -t ext2 /dev/block/mmcblk0p5 /system
adb push sqlite3 /system/bin

hey, i dont own nook touch, but this should work, just as on Nook color (from video I seen):
to go BACK, you dont need to remap key, just swipe with finger from right-to-left in clock area (on nook color it was at bottom, but on nook touch it should be at top position).
post results..

xmas_spirit said:
hey, i dont own nook touch, but this should work, just as on Nook color (from video I seen):
to go BACK, you dont need to remap key, just swipe with finger from right-to-left in clock area (on nook color it was at bottom, but on nook touch it should be at top position).
post results..
Click to expand...
Click to collapse
Yes, I've been doing this.

Nook 2nd Ed. Touch --from an SD card?
(First, sorry if this isn't the perfect place to post this...so feel free to move it if there's a better place.)
Ahem...uh, well...this question comes up because I happen to work at a business that is currently selling Nooks, and we've just received the new Touch version. However, for some brilliant (<<sarcasm) reason the demo units we've received are not really demo's, they only play a little presentation that shows how what the features are, and it loops over and over. So, we're very surprised that with this new touch sensitive Nook the user really doesn't have any chance to see how it actually works. No ability to test it, read, use the touch screen..nada! Wtf??
I'm curious whether someone might be able to make a bootable copy of the Touch software that will run off a SD card? If we could at least boot off the SD card so customers could at least see how the thing really functions, then it sure would make selling them easier...and no harm done afterward
-JTT

jttraverse said:
(First, sorry if this isn't the perfect place to post this...so feel free to move it if there's a better place.)
Ahem...uh, well...this question comes up because I happen to work at a business that is currently selling Nooks, and we've just received the new Touch version. However, for some brilliant (<<sarcasm) reason the demo units we've received are not really demo's, they only play a little presentation that shows how what the features are, and it loops over and over. So, we're very surprised that with this new touch sensitive Nook the user really doesn't have any chance to see how it actually works. No ability to test it, read, use the touch screen..nada! Wtf??
I'm curious whether someone might be able to make a bootable copy of the Touch software that will run off a SD card? If we could at least boot off the SD card so customers could at least see how the thing really functions, then it sure would make selling them easier...and no harm done afterward
-JTT
Click to expand...
Click to collapse
Of course this might be possible, but considering the limitations of this device (black and white, not meant to be a tablet) this would be very hard to achieve. The first step would be finding out if the thing can boot sd cards with a custom boot image.

ikingblack said:
Of course this might be possible, but considering the limitations of this device (black and white, not meant to be a tablet) this would be very hard to achieve. The first step would be finding out if the thing can boot sd cards with a custom boot image.
Click to expand...
Click to collapse
I do not see why it couldn't boot from SD since it boots from the SD to actually root it. I see ALOT of the original Nook color mod's and scripts working on this little device since it does not deviate from the Nook color design much.

Some more resources available here, including the installation for Kindle app

What does the partition shceme look like on the Nook Touch? Is it anyway similar to Nook Color? Don't have one yet, but plan on picking one up soon.
Thanks,
Racks

ikingblack said:
Of course this might be possible, but considering the limitations of this device (black and white, not meant to be a tablet) this would be very hard to achieve. The first step would be finding out if the thing can boot sd cards with a custom boot image.
Click to expand...
Click to collapse
10 char
Sent from my BAMF Thunderbolt powered by Sense 3.0

I was hoping that mapping HOME to one of the left buttons would bring up my launcher (ADW) but instead it it brings up the same menu as the N button. Any ideas how to map a button to a launcher?
I have found that Button Savior dies a lot, which means I can't get back to the launcher.

I remap the left keys as follows:
key 412 VOLUME_DOWN
key 139 VOLUME_UP
In Kindle, I set Kindle to use volume buttons for page turning. Then I can use the hard buttons for page turning in Kindle ! This also works in other reading programs for example Aldiko, NewsRob.
Does anyone know the key code of the Nook button and the action to launch the launcher ?

aruangra said:
I remap the left keys as follows:
Does anyone know the key code of the Nook button and the action to launch the launcher ?
Click to expand...
Click to collapse
Looks to be hard coded into the framework or something.

In trying to install the gapps on my NT, I've had to restore to factory twice. I started using the instructions for the NC here:
http://nookdevs.com/NookColor:Manua...gapps_google_applications_onto_your_NookColor
Code:
adb push nc_gapps.zip /media
adb shell
mount -o rw,remount -t ext2 /dev/block/mmcblk0p5 /system
cd /media
miniunz -x nc_gapps.zip -d /system/
echo "ro.config.nocheckin=no" >> /system/build.prop
exit
After installing the signed_youtube.apk I reboot.
Can someone who's done this post some details?

jocala said:
In trying to install the gapps on my NT, I've had to restore to factory twice. I started using the instructions for the NC here:
http://nookdevs.com/NookColor:Manua...gapps_google_applications_onto_your_NookColor
Code:
adb push nc_gapps.zip /media
adb shell
mount -o rw,remount -t ext2 /dev/block/mmcblk0p5 /system
cd /media
miniunz -x nc_gapps.zip -d /system/
echo "ro.config.nocheckin=no" >> /system/build.prop
exit
After installing the signed_youtube.apk I reboot.
Can someone who's done this post some details?
Click to expand...
Click to collapse
I know framework.jar does not like Nook Touch. BTW how did you factory reset?

To do a factory reset reboot x 8. Interrupt each boot with a powercycle prior to the "Nook..." screen.
It's really getting tough to find things, I'm following multiple nt threads, and I could swear someone wrote about installing gapps.

remount
Below is a handy script for mounting /system I keep in my /system/xbin directory. Originally from sdx for my epic, modified for the nook touch.
Code:
#!/system/bin/sh
case $1 in
rw)
echo "Remounting /system in read/write mode"
mount -o rw,remount -t ext2 /dev/block/mmcblk0p5 /system ;;
ro)
echo "Remounting /system in read-only mode"
mount -o ro,remount -t ext2 /dev/block/mmcblk0p5 /system ;;
*)
echo "usage: remount rw -or- remount ro";;
esac
/system/xbin does not exist, it needs creation. I keep personal scripts there, and binaries such as busybox, bash, su, etc.

Extracting the root filesystem
These instructions assume using a linux console.
The root filesystem lives in a u-boot/PPCboot ramdisk. These instructions tell you how to extract it.
Boot your nt with the "rooted forever" sdcard while connected with usb.
Make a copy of the boot partition. After this you may reboot your nt normally.
$ tar -cf boot.tar boot/
$ tar xvf boot.tar
$ cd boot
Extract the uRamdisk file. first 64 bytes is the u-boot header, we need to skip it.
$ dd if=URamdisk bs=64 skip=1 of=ramdisk.gz
ramdisk.gz now contains the root file system.
Copy ramdisk.gz to a empty directory, then extract it:
gunzip -v ramdisk.gz
cpio -iv < ramdisk
Now the root file system has populated your work dir. Delete the file ramdisk. You can now make changes to the root file system, and using mkimage (in theory) reconstruct the uRamdisk.
That part I haven't done yet.

racks11479 said:
What does the partition shceme look like on the Nook Touch? Is it anyway similar to Nook Color? Don't have one yet, but plan on picking one up soon.
Thanks,
Racks
Click to expand...
Click to collapse
Code:
Filesystem Size Used Available Use% Mounted on
tmpfs 113.8M 0 113.8M 0% /dev
tmpfs 4.0M 0 4.0M 0% /sqlite_stmt_journals
/dev/block/mmcblk0p2 15.7M 118.5K 15.6M 1% /rom
/dev/block/mmcblk0p5 278.9M 187.2M 88.8M 68% /system
/dev/block/mmcblk0p8 789.3M 80.2M 701.1M 10% /data
/dev/block/mmcblk0p7 232.4M 6.1M 223.9M 3% /cache
/dev/block//vold/179:6
236.3M 682.0K 235.6M 0% /media
/dev/block//vold/179:17
7.4G 3.1G 4.3G 42% /sdcard

dropbear & rsync
Dropbear and rsync are installed and working well on the nt. This setup allows me sync the libraries on most of my reading devices (exceptions PlayBook & iPad - walled gardens).

Related

[Q] How to push HTC_IME MOD to system app through Terminal Emulator

Peace all,
t
his is less of a bug and more of a question… i think. I'm trying to install a custom theme for the HTC_IME MOD keyboard.
Here goes: I downloaded Myn's RSL2--the ROM is GREAT!! However, the HTC_IME MOD he uses is MANUP's (all black keyboard w/ green highlights)--which looks great---but its difficult on my eyes and I need something a little lighter. So i downloaded the regular HTC_IME MOD and attempted to open it in ASTRO and it only gave me the options of "launch" or "uninstall". When i tried to uninstall it said i couldnt do it---so i went through Titanium Backup and un-installed it there---now i can't re-install from ASTRO.
can anybody assist me w/ Terminal Emulator commands to PUSH this to system app?
I think the problem is due to the fact that Myn's original keyboard is baked into the rom, but i don't know how to re-install or install over this. Any help is appreciated.
-ZDK-
Does anybody know?
easiest way would be through adb, but since you want to use emulator...
put the apk on the sdcard
go into terminal emulation
type 'su', it should give you a # prompt
Code:
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
#mv /sdcard/whateverthefileiscalled.apk /system/app/whateverthefileissupposedtobecalled.apk
#exit
reboot it. that should work. if not, it's probably because i've copied the wrong mount command. google it. keep in mind that system is on block four on evo
timothydonohue said:
easiest way would be through adb, but since you want to use emulator...
put the apk on the sdcard
go into terminal emulation
type 'su', it should give you a # prompt
Code:
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
#mv /sdcard/whateverthefileiscalled.apk /system/app/whateverthefileissupposedtobecalled.apk
#exit
reboot it. that should work. if not, it's probably because i've copied the wrong mount command. google it. keep in mind that system is on block four on evo
Click to expand...
Click to collapse
Peace timothydonohue
Followed your directions...got a little [email protected] #mv /sdcard/---i put HTC_IME_hi22.apk---but i didnt/dont understand what you mean when you say in the next part to put it as "whateverthefileissupposedtobecalled.apk"---wouldnt that be the same as HTC_IME_hi22.apk?
stuck...
-ZDK-
*EDIT* I got it working
cool
congrats. hope i was at least a little help

Screen calibration config

I'd like to know where are stored the parameters of the screen calibration.
I ask this because at every reboot they reset to factory default so I want to mod it directly.
Kisses to all
seems to be stored in
Code:
/data/data/org.isageek.dasbrennen.CalibrateScreen/databases/calvalues
which is a sqlite database (which I know nothing about!)
You could try making a copy of it before and after rebooting and see if it changes (binary diff). If it does, maybe you could replace it on every boot in your userinit .sh
If not, maybe the CalibrateScreen app just needs to be started to load the custom values, but you could probably do that on startup too.
mmec2 said:
seems to be stored in
Code:
/data/data/org.isageek.dasbrennen.CalibrateScreen/databases/calvalues
which is a sqlite database (which I know nothing about!)
You could try making a copy of it before and after rebooting and see if it changes (binary diff). If it does, maybe you could replace it on every boot in your userinit .sh
If not, maybe the CalibrateScreen app just needs to be started to load the custom values, but you could probably do that on startup too.
Click to expand...
Click to collapse
Thank you very much for your reply, however I was trying to figure out the place where these values are stored into android system and not into the app... because I think that the app it's only a bridge for the real calibration of the system... or maybe I'm wrong?
TuoNonno said:
Thank you very much for your reply, however I was trying to figure out the place where these values are stored into android system and not into the app... because I think that the app it's only a bridge for the real calibration of the system... or maybe I'm wrong?
Click to expand...
Click to collapse
For some reason, I assumed it was a built in part of the system, but it's not!
Anyway, your question has got me interested now, so I took CalibrateScreen.apk from Scoot's CM6.1 build, decompiled the apk with apktool and searched the source for "write"
I believe the values you are looking for are
Code:
/sys/class/vogue_ts/xmin
/sys/class/vogue_ts/xmax
/sys/class/vogue_ts/ymin
/sys/class/vogue_ts/ymax
(found in CalibrateScreen/smali/org/isageek/dasbrennen/CalibrateScreen/Calibrator.smali)
so you could just add
Code:
echo NUMBER > /sys/class/vogue_ts/xmin
etc. etc.... to your userinit.sh
mmec2 said:
For some reason, I assumed it was a built in part of the system, but it's not!
Anyway, your question has got me interested now, so I took CalibrateScreen.apk from Scoot's CM6.1 build, decompiled the apk with apktool and searched the source for "write"
I believe the values you are looking for are
Code:
/sys/class/vogue_ts/xmin
/sys/class/vogue_ts/xmax
/sys/class/vogue_ts/ymin
/sys/class/vogue_ts/ymax
(found in CalibrateScreen/smali/org/isageek/dasbrennen/CalibrateScreen/Calibrator.smali)
so you could just add
Code:
echo NUMBER > /sys/class/vogue_ts/xmin
etc. etc.... to your userinit.sh
Click to expand...
Click to collapse
you are the man! You solved a issue that was drilling me since months!
Many many thanks!
It wooooooooooooooorks! HUAHAHAHAHA!
step by step:
1) calibrated screen with screencalibration app.
2) copied
Code:
/sys/class/vogue_ts/xmin
/sys/class/vogue_ts/xmax
/sys/class/vogue_ts/ymin
/sys/class/vogue_ts/ymax
/system/bin/userinit.sh
to sdcard root
3) edited userinit.sh with notepad++ like that:
Code:
#!/system/bin/sh
#
# Fix su so that we use the one supplied with the build. This allows the Superuser Permissions app to do it's stuff
#
/bin/umount /bin/su
/bin/umount /system/bin/su
busybox mount -o rw,remount /system
echo 708 > /sys/class/vogue_ts/xmin
echo 3660 > /sys/class/vogue_ts/xmax
echo 257 > /sys/class/vogue_ts/ymin
echo 3551 > /sys/class/vogue_ts/ymax
chmod 04777 /system/bin/su
chmod 04777 /sys/class/vogue_ts
busybox mount -o ro,remount /system
/bin/mount --bind /system/bin/su /bin/su
4) created a androidupdate.tar file with 7zip containing system/bin/userinit.sh
5) dpad during startup, installed androidupdate and fixed permissions
Happy ^^
could you upload the standard calibrate file to me ?
I dont understand why my kaiser seem to be crazy because touch screen seem to be rotate 90 degrees. it mean .... the app button ( in the center of the bottom screen ) will become middle of the left screen. I mean if I want to touch app button, I must touch the middle left of the screen
I cant do anything with this !!!
Fuk my kaiser >.< sorry for my bad emotion !!!
dai_thang said:
could you upload the standard calibrate file to me ?
I dont understand why my kaiser seem to be crazy because touch screen seem to be rotate 90 degrees. it mean .... the app button ( in the center of the bottom screen ) will become middle of the left screen. I mean if I want to touch app button, I must touch the middle left of the screen
I cant do anything with this !!!
Fuk my kaiser >.< sorry for my bad emotion !!!
Click to expand...
Click to collapse
Sure, here it is, install it like a normal update from dpad menu on boot (remember to fix permission after the install)
thanks for your quick response ! however, my fukin kaiser didnot change in positive way. Comparing to my friend device, I realize that different Kaiser has Different compatibility. I try 3 panel mode but the screen did not work well ! How can I mod a unique sceen calibration for me ? I mean rotate 90 degree counter clockwise T_T ?
I'm waiting for for help, TuoNonno, my own hero !
dai_thang said:
thanks for your quick response ! however, my fukin kaiser didnot change in positive way. Comparing to my friend device, I realize that different Kaiser has Different compatibility. I try 3 panel mode but the screen did not work well ! How can I mod a unique sceen calibration for me ? I mean rotate 90 degree counter clockwise T_T ?
I'm waiting for for help, TuoNonno, my own hero !
Click to expand...
Click to collapse
LOL...
have you tried to follow the instruction that I posted above to extract the correct values for your touch? remember also to do the calibration with the sliding keyboard closed!
TuoNonno said:
It wooooooooooooooorks! HUAHAHAHAHA!
step by step:
1) calibrated screen with screencalibration app.
2) copied
Code:
/sys/class/vogue_ts/xmin
/sys/class/vogue_ts/xmax
/sys/class/vogue_ts/ymin
/sys/class/vogue_ts/ymax
/system/bin/userinit.sh
to sdcard root
Happy ^^
Click to expand...
Click to collapse
How can I generate this information ???
What did U mean .... by saying "copied" ?
Those are the steps I did, so I wrote "copied".
Just follow those steps, nothing more to do
Basically, you need to run the calibration screen app, then you copy the 5 files in "/sys/class/vogue_ts" to your sd card root in order to be more handy and do those steps.
dai_thang said:
thanks for your quick response ! however, my fukin kaiser didnot change in positive way. Comparing to my friend device, I realize that different Kaiser has Different compatibility. I try 3 panel mode but the screen did not work well ! How can I mod a unique sceen calibration for me ? I mean rotate 90 degree counter clockwise T_T ?
I'm waiting for for help, TuoNonno, my own hero !
Click to expand...
Click to collapse
actually i cant speak english properly. but ill try to answer ur questions.
i have a stupid solution for the problem of calibrating the screen. i use Incubus26Jc's Super Froyo 2.2 [Deodexed] [RLS15] on my kaiser.
i do the screen calibration once a week. for the screen calibration on my android, will appear a black screen with two red dots on the screen to the left top, and bottom right. all i have to do is touch one red spot twice, until the recalibration text does not appear. (or other writings that tell you to re-calibration).
finished ...!!! what i have to do is press the "OK" to apply. i hope now ur screen is not mad anymore.
TuoNonno said:
It wooooooooooooooorks! HUAHAHAHAHA!
step by step:
1) calibrated screen with screencalibration app.
2) copied
Code:
/sys/class/vogue_ts/xmin
/sys/class/vogue_ts/xmax
/sys/class/vogue_ts/ymin
/sys/class/vogue_ts/ymax
/system/bin/userinit.sh
to sdcard root
3) edited userinit.sh with notepad++ like that:
Code:
#!/system/bin/sh
#
# Fix su so that we use the one supplied with the build. This allows the Superuser Permissions app to do it's stuff
#
/bin/umount /bin/su
/bin/umount /system/bin/su
busybox mount -o rw,remount /system
echo 708 > /sys/class/vogue_ts/xmin
echo 3660 > /sys/class/vogue_ts/xmax
echo 257 > /sys/class/vogue_ts/ymin
echo 3551 > /sys/class/vogue_ts/ymax
chmod 04777 /system/bin/su
chmod 04777 /sys/class/vogue_ts
busybox mount -o ro,remount /system
/bin/mount --bind /system/bin/su /bin/su
4) created a androidupdate.tar file with 7zip containing system/bin/userinit.sh
5) dpad during startup, installed androidupdate and fixed permissions
Happy ^^
Click to expand...
Click to collapse
Awesome! my Kaiser 100 now holds screen calibration, even after a dead battery or a power cycle. Really enjoying Dark_Prince's Froyo 2.2.2 on this AT&T tilt. But the method of creating a androidupdate.tar did not work for me. The update reported it worked as a success, then a fix permission seemed to finish, but still no calibration save.
This is what worked on my device:
As TuoNonno said I copied the four files containing the needed values, and in the end I went to market and got a file manager that had root permissions and edited ' /system/bin/userinit.sh ' to reflect the values those four files held.
my userinit.sh on my device now looks like this:
Code:
/bin/umount /bin/su
/bin/umount /system/bin/su
busybox mount -o rw,remount /system
echo 1345 > /sys/class/vogue_ts/xmin
echo 3387 > /sys/class/vogue_ts/xmax
echo 334 > /sys/class/vogue_ts/ymin
echo 3615 > /sys/class/vogue_ts/ymax
chmod 04777 /system/bin/su
chmod 04777 /sys/class/vogue_ts
busybox mount -o ro,remount /system
/bin/mount --bind /system/bin/su /bin/su
Not sure if that is the 'proper' way to fix, but it surely seems to work - I no longer have to use the physical buttons to navigate to and open the screen calibrate app.
Thank you to all that had a part in developing this fix. The knowledge of the gurus on this forum is outstanding!

[Q] QWERTZ -> QWERTY on a Desire Z

I recently obtain a Desire Z and immediately rooted and installed various ROMS. All is working great.
The problem is the hardware keyboard is a qwertz one (I bought the phone in Switzerland) and not a qwerty one. I want to the switch the keymap around such that z prints y and vice versa. I've set the keyboard setting to UK and US English but it has no effect on the h/w k/b.
I'm familiar with adb but don't know which files to hack on. Please can someone point me in the right direction?
Thanks!
the hardware keyboard layout is fixed.
the setting in menu is only changing the software keyboard.
Thanks for the reply.
But I don't buy it. This can be changed somehow and someone knows how. I'll keep hacking and post back with any useful results.
I have a sneaking feeling that it should be able to be cooked in. Even on Winmo, you can change your keyboard's layout, i don't see why android, a platform that is much more advanced, would not be able to do that.
This is just a hunch, but you probably just need to modify /system/usr/keylayout/vision-keypad.kl and possibly /system/usr/keylayout/qwerty.kl (they're both plain text files, but with unix line endings)
On a UK QWERTY Desire Z:
Key 21 is Y
Key 44 is Z
If your files have them round the other way, it should just be a simply case of swapping them and rebooting (nandroid first though!)
Great. I tried those files and no good so I went for the heavy handed approach after mounting system as rw and su'ing:
cd /system/usr/keylayout
sed -i s/Y/--/ *
sed -i s/Z/Y/ *
sed -i s/--/Z/ *
Job done! Thanks for your help
For the almost-beginners:
Connect your phone in sync-mode, run cmd, navigate do adb directory (search forum for adb if you didn't get it) and type:
Code:
adb shell
su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
cd /system/usr/keylayout
sed -i s/Y/--/ *
sed -i s/Z/Y/ *
sed -i s/--/Z/ *
Best regards to all
DRuMah said:
For the almost-beginners:
Connect your phone in sync-mode, run cmd, navigate do adb directory (search forum for adb if you didn't get it) and type:
Code:
adb shell
su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
cd /system/usr/keylayout
sed -i s/Y/--/ *
sed -i s/Z/Y/ *
sed -i s/--/Z/ *
Best regards to all
Click to expand...
Click to collapse
shall be rooted to run these?
am getting access denied!!!!!11111
Well obviously you need root to write to /system/ partition.
DRuMah said:
For the almost-beginners:
Connect your phone in sync-mode, run cmd, navigate do adb directory (search forum for adb if you didn't get it) and type:
Code:
adb shell
su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
cd /system/usr/keylayout
sed -i s/Y/--/ *
sed -i s/Z/Y/ *
sed -i s/--/Z/ *
Best regards to all
Click to expand...
Click to collapse
Hi, I've tried this on my Desire Z and it indeed switched the 'y' and 'z' character keys on the hardware keyboard.
The downside is that is also changes the corresponding FN symbols (i.e. number six character '6' and underscore character '_').
Do you know wether it is possible to switch the letters but not the symbols?
I don't know about the symbols. My guess is you have to live with it. I do. Yes, it's annoying but IMO about 10% as annoying as the original problem.
I would also add that on ICS, the above changes b0rked the keyboard (probably due to the sed script replacing stuff it ought not have). So I used this instead:
Code:
adb shell
su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
cd /system/usr/keylayout
sed -i s/'key 44 '/'key XX '/g *
sed -i s/'key 21 '/'key 44 '/g *
sed -i s/'key XX '/'key 21 '/g *
adb reboot
If I have to do this one more time, I'm going to make an app.....
In the end I managed to fix the symbols by editing some hex file I can't recall right now. I can check it out later and post what I did if anyone is interested.
Couldn't come up with a simple command like yours though, and edited it by hand by downloading to the PC and uploading after modification. It can probably be done using regular expressions, but they are not my biggest strength
Good job I'm certainly interested. If you could post specific details that would be great!
Cheers.
Sorry for the delay, but I've had quite a busy week...
The file that I modified was /system/usr/keychars/vision-keypad-ger.kcm.bin My phone was bought from Germany, so if you have a different region phone the specific file you need to edit might be a different one.
I edited it on Windows with xvi32 hex editor (GHex on Ubuntu works fine as well), and the nice thing about it is that you can see the hexadeciman values on the left and their ASCII counterparts on the right. It was quite easy to find the sections 'yY__' and 'zZ66'. You only need to change those to 'yY66' and 'zZ__' and voilá.
If you already have your 'y' and 'z' keys swapped (but the symbols out of place), you should changed change the '6's and '_'s. If you have the letters on their original positions you should then change the letters instead, and the symbols will stay where they are.
Hope that helps.
Great job
little help
migueluli said:
Sorry for the delay, but I've had quite a busy week...
The file that I modified was /system/usr/keychars/vision-keypad-ger.kcm.bin My phone was bought from Germany, so if you have a different region phone the specific file you need to edit might be a different one.
I edited it on Windows with xvi32 hex editor (GHex on Ubuntu works fine as well), and the nice thing about it is that you can see the hexadeciman values on the left and their ASCII counterparts on the right. It was quite easy to find the sections 'yY__' and 'zZ66'. You only need to change those to 'yY66' and 'zZ__' and voilá.
If you already have your 'y' and 'z' keys swapped (but the symbols out of place), you should changed change the '6's and '_'s. If you have the letters on their original positions you should then change the letters instead, and the symbols will stay where they are.
Hope that helps.
Click to expand...
Click to collapse
hi. how you manage to change permission of file vision-keypad-ger.kcm.bin ?
I tried with adb, it's not working.
needubad said:
hi. how you manage to change permission of file vision-keypad-ger.kcm.bin ?
I tried with adb, it's not working.
Click to expand...
Click to collapse
You need to mount the /system partition as rw to be able to modify that file. You can do that with
Code:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
while logged as root in the adb shell.
If you already did that and are still unable to modify the file then I'm afraid I cannot be of much help
I'd like to do an oposite thing: QWERTY --> QWERTZ
for us, noobs, could someone please simillar commands for this operation?
thanks in advance
HoradricCZ said:
I'd like to do an oposite thing: QWERTY --> QWERTZ
for us, noobs, could someone please simillar commands for this operation?
thanks in advance
Click to expand...
Click to collapse
... for noobs you'd think you would just flip the placement of Z and Y.

Installing Debian Squeeze on Android Optimus - Walkthrough

Installing Debian Squeeze on Android Optimus S - Walk-throughs
This is slowly becoming a larger topic. So for now i will post various ways proven to work on the Optimus S and V as links below:
Installing Debian Squeeze on Android Optimus - Walk-through Compiled by uamadman
Install Debian Squeeze - non-loop sd-ext chroot method (prebuilt!) By bigsupersquid
ALL-Thumbs GUI to replace LXDE By bigsupersquid
4 Steps to Linux on your Optimus S - written by uamadman hosted by uamadman
All of this work was done by other people. I am simply compiling information and specializing it to the Optimus S.
This method does not require a pc, and everything is done through your android interface.
Current Abilities I've tested with success.
Play Sound
Surf the web
Access entire SD Card
Currently Working on:
Flash Support through IceWeasel
Completed:
Making this a simple download and phone restore - Done
Needs:
A GUI with bigger buttons and scaled for 480x320 - Done thanks bigsupersquid
Transparent Keyboard
Sources:
Howto Install Ubuntu by NexusOneHacks.net
secret hidden note to self psychocats.net/ubuntu/nonfree
Lets begin.
You need the following requirements:
Recommended: 2+ gigabytes of free SD card Space (Minimum 1.25gb)
A Rooted Optimus S
Kernel/Recovery: Xionia CWMA v1.2518.6
ROM:The Scott Pilgrim ROM (CM7 Gingerbread, Zefie Edition)
BusyBox Installer - You can get this from google apps store by JRummy16
Linux Installer – You can get this from google apps store by Galoula
Items worth having to things that make this easier:
A Wifi Internet Connection
A fully Charged Battery and a Wall Charger ^.^
2 Bottles of Mountian Dew
Your favorite Movie
and
The Patience to NOT Touch/use your phone for the 2 hours needed to complete the initial install process.
I started this endeavor with a clean install of the ROM listed above.
!!Make backups if you MUST save your data before you proceed any further!!
Warning: In The Simplest Terms(More detail will be in the final walkthrough)
Sometimes the Linux Installer doesn't work or if it is working and the process is interrupted while creating the .LOOP or extracting the build. The Linux Installer will stop working. I've found two (2) ways to fix the issues. The first is to go into setting and clear the cache for Linux Installer, Then open the superuser app and forget the permissions assigned to Linux Installer (Note: Try this a few times before resorting to a clean wipe, this method sometimes takes a few tries). The second is a clean wipe/recovery of the phone. Additionally if for some reason there is a interruption and the process stops. reboot the phone delete linux.loop off your sdcard and start from scratch. BEWARNED
*Walk-through - Under Construction*
To clarify any confusion the button names I use from left to right:
Home : Menu : Back : Search
Pre-Install Check List for Formatting/Reloading Rom
install sdcard with ROM/Recovery's
Reboot > Recovery
wipe data/factory reset
mounts and storage> format system
install zip from sdcard >choose zip from sdcard > update-cm-7-04282011-NIGHTLY
install zip from sdcard >choose zip from sdcard > gapps-gb-20110120
Remove sdcard with ROMS
Install sdcard marked for Linux
mounts and storage > format sdcard
reboot system now
Pre-install Checklist phone prep. (If you choose to overclock your phone this would be a great time to do it)
Wait 2 minutes for phone to fully load
tap droid
tap skip
tap next/done
Settings > Display > Screen timeout > 30 minutes
Settings > Applications > Check Unknown sources (not sure if nessesary)
Settings > Applications > Development > Check Stay awake (Required!!!!)
Settings > Accounts & Sync > Add Account (Go Through Menu's should take you though Market Install)
Market > Search Busy Box > tap BusyBox Installer by JRummy16 > free > ok
Market > Search Linux Installer > tap Linux Installer by Galoula > free > ok
Market > Search vnc > tap android-vnc-viewer Installer by androidVNC team + antlersoft > free > ok
Press Home Key
Apps> Busybox Installer >Allow Permissions> OK > Install
Install Check List
Warning
DO NOT ROTATE YOUR PHONE
ALLOW THE SCREEN TO SHUT OFF
LOCK THE PHONE
WHILE THIS APP IS OPEN UNLESS STATED
(you will see bad things if you do)
For Debian
Apps > Linux Installer > Allow SU Permissions > Allow SU Permissions > Allow SU Permissions > Click OK (First time start up, Yes 3 Approvals. If you don't recieve 3 notifications from super user it means Linux Installer is bugged. Go Settings>Applications>Manage Applications> under the Downloaded tab find Linux Installer > Select > Clear Data > Try step again. May take a few tries.)
Press Menu Key > Tap Setup > Tap File Size > Set to 1250 or more but must be less than the size of your SD Card.> ok > Press The Back Key (Linux installer will exit to your apps menu)
For Ubuntu - Currently bugged. I would avoid this. The source.list seems to have issues and won't download packages.
REQUIRED: Set you phone some where flat plugged into power Do Not Let The Screen Rotate!!!!!Apps>Linux Installer > Tap 1) Create target loop
Be Patient Wait until the Creating LOOP menu disappears. The length of time is dependent on the size of Megabytes set in the File Size option. About 10 minutes for 1500 Mb
Tap Liberate Loop -- Really Fast
Tap Format target loop (ext2) - This is the Buggy Part. If you get an Error message everything is most likely ok. Pickup your phone and Physically Rotate it so the screen rotates. Two additional menu's should appear. [3) Copy and Extract into loop and Install Linux Boot Script]
Lay your phone back down flat it doesn't matter if the screen rotates back to its original.
From here on DO NOT let the Screen Rotate Again! The process will be interrupted and you will get to start from step 1
Tap 3) Copy and Extract into Loop (it will start downloading and extracting the packages necessary to install Linux) This can take up to an hour. On a good 3g connection less than 45minutes.
Tap 4) Install into loop (This takes less than 10 minutes)
Tap Install Linux boot script
30 Seconds Later you officially have a version of Linux installed on your phone
CONGRATS
Verify Install Works
Apps > Terminal Emulator > Type: su > Enter > Grant Permissions > Type: linuxboot > Enter
You should get a string of code then get something like:
[email protected]:/
Most of the next portion comes from the Nexusonehecks.net
Setting up VNC and LXDE (so you don't have to look at terminal lines all day)
Apps > Terminal Emulator > Type: linuxboot > Enter <---If your not already in already.
Type > apt-get update > enter --- 5 minutes
Tight VNC Server
Type > apt-get install tightvncserver > Type y > Press enter --10 minutes
LXDE
Type > apt-get install lxde > type y > Press enter - 30 Minutes+
After a while you should get this screen
Press Menu > Preferences > Control key > Choose Camera Key > Back key > Back Key
Fully Depress the Camera Button Down and Tap the number 9 on the soft key board > Release Camera key > Tap Space Bar -- now two times more
Fully Depress the Camera Button Down and Tap the number 9 on the soft key board > Release Camera key > Tap Space Bar
Fully Depress the Camera Button Down and Tap the number 9 on the soft key board > Release Camera key > Tap Space Bar
The process should continue installing LXDE
tightvncserver Setup
Type> export USER=root > enter
Type> vncserver -geometry 1024x800 > enter
enter password > enter (use something simple you can remember i used 123123123 like they did on the nexusonehacks.net writeup)
verify password > enter
Press Enter after typing each line of the following code. Be Very Slow and Deliberate. Double Check Each line for Capitalization and accuracy before pressing Enter! I do not know how to edit this again --hidden note-->Perhaps some one can show me/tell me how
cat > /root/.vnc/xtartup
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
icewm &
lxsession
Now Press and Hold the Camera Key and Tap D twice on the soft keyboard > Press Enter (it may ask to press 1 do not and only press enter)
If your camera key wasn't set look here to set it again--->Press Menu > Preferences > Control key > Choose Camera Key > Back key > Back Key
Setting up VNC on android ... After all those command lines I'm sure this is a very very nice change xD
Press Home Screen
Apps > androidVNCviewer > For Password enter 123123123 (Or whatever you set it to in the previous server setup)
Scroll to Port and enter 5901
Change the Color Format if you wish. It runs rather nicely on 24bit color but consumes more cpu cycles.
Tap Connect -- A Very Pretty LXDE should appear with a working CPU Monitor and everything nice
I know you want to play but we have a little more work to do this next step uses Terminal Emulator as the auto start/config file to boot linux and start and configure tightvncserver
Press Home
Open Termial > Menu Key > Preferences > Initial Command > Tap to Edit
Make Edit look like this
export PATH=/data/local/bin:$PATH
linuxboot
vncserver -geometry 600x480
Tap OK > Back out of Teminal to home
vncserver -geometry 600x480<--- this is where you change your screen size. you need a minimum of 600x480 to use the synaptic package manager and a few other things. but when i'm surfing the net or other things I prefer 480x320 (The Exact Size of the Optimus S Screen)
Now whenever you want to run linux simply open the Terminal Emulator. Wait 60 seconds for the code to run.
open androidVNCviewer and click Connect
DONE
Extra things go here
apt-get install synaptic - installs synaptic manager a nice GUI interface for the apt-get command
I have been running a Debian chroot on my optimus V for a few months now, squeeze and sid both work fine. I did it manually without the stuff from the market, and I use the sd-ext partition instead of a loop file
per your GUI issues:
I like xfce4 better than lxde on my optimus V.
Code:
apt-get install xfce4 xfce4-goodies
instead of lxde.
oh, also, the OP pointed out to me that
Code:
apt-get install xfce4-goodies
alone will also pull down xfce4 as a dependency (and that I left out the word install which is now corrected.)
modify the /root/.vnc/xstartup accordingly.
replace
Code:
icewm&
lxsession
with
Code:
xfce4-session&
or, you can cut-and paste my complete file here:
Code:
echo "#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
export XKL_XMODMAP_DISABLE=1
xfce4-session&" > /root/.vnc/xstartup
I have modified a theme for xfce to be more finger-friendly.
see attachment
decompress that file, it contains a folder, Xfce_large.
place the folder in /usr/share/themes
tap on the rat in the lower-left of the desktop (opens menu)
select Settings by tapping its arrow (xfce is twitchy about the menu through the VNC, it may take a few tries to select items on the main menu.)
select Appearance. Then Style.
Scroll down to Xfce_large and tap it, then tap Close at the bottom.
Voila, oversized scrollbars and menu bar buttons!
If you don't like the size, the settings I modified are in the gtk-2.0 subfolder of Xfce_large in the file gtkrc
the modified settings are not tabbed over like the rest of the settings in the file.
I also changed the default font size, icon size, icon font size, and DPI settings, but that has to be done in the settings menus.
The optimus display is about 120 DPI, the default is 75. 120 looks much nicer I think.
You are awesome
good luck with flash. gnash only plays ads on my V, not whole videos.
get-flash-videos from google code works nicely, but it's a capture utility.
it does try to play with mplayer, but only shows a couple of frames per few seconds because the VNC display method of manually copying the framebuffer is very slow.
using a bandwidth meter (debian package cbm to be exact) the vnc uses from 14 to 80Kb per second of system bandwith on device l0.
I don't know what's pegging your CPU use, mine only tops out when the debian system is doing something. I built my chroot with debootstrap instead of using the market installer, no telling what is preinstalled on the image it downloads.
I am going to try this out once i'm finished trying to get the ubuntu side of the house working.
Can I append this to my post here and androidcentral with proper credits due to you so all may share?
uamadman said:
...Can I append this to my post here and androidcentral with proper credits due to you so all may share?
Click to expand...
Click to collapse
certainly. just test the instructions for functionality before adding them in.
I considered starting a thread on this myself but never got around to it.
I'll continue to contribute info as this develops.
as an extra, here's a link I've posted, a few places on both forums, with a clean debootstrapped debian filesystem, tarred up to shrink it for download.
I goofed a bit when compressing it though, when decompressed it's a single folder containing the filesystem.
http://www.4shared.com/file/iWuUtZgS/squeeze_05_2011tar.html
uncompressed, 9645 items, totalling 264.3 MB
compressed, 116.3 MB (121929580 Bytes)
this will either need the contents of the freshsqueeze folder it contains copied to an ext2 (or ext3/ext4 if you want to brave the damage from journalling on a SD card, which seemed to cause corruption when I tried ext4) partition on your SD card, or, copied into a blank loop ext filesystem if you prefer.
with an empty debian img file mounted as a loop filesystem on a linux box, you can copy everything from the freshsqueeze folder to the loop filesystem by:
Code:
cp -av /path/to/freshsqueeze/* /path/to/loopmountedimg
the loop filesystem method should allow you to continue using your startup scripts as-is, they'll need slight modifications to work with an ext partition like I'm using.
its resolv.conf and sources.list are already configured for 3g access and the main Debian repository, so it's pretty much plug-n-play. no extra packages are installed, you'll need to apt-get tightvncserver and a window manager of your choice, unless you just want the bash shell.
the first time you chroot in, you should use passwd to set a root password, and adduser to get a non-root account on there.
this is not a loop filesystem like what you are using. it is a full directory tree of a base squeeze install.
I would like to see this on the V.its my only phone right now.if I had 2 I would try it.
Sent from my BumbleV using XDA Premium App.
ummkiper said:
I would like to see this on the V.its my only phone right now.if I had 2 I would try it.
Sent from my BumbleV using XDA Premium App.
Click to expand...
Click to collapse
I don't think a chroot can hurt your phone. I even run mine bind-mounted into the root filesystem, with system r/w, and haven't ever had any problems a reboot didn't solve. and it's been since April since I had a forced reboot from running stuff in debian.
now, I don't know about the installer from the market, if it asks for root access multiple times, I'm not sure just what it's doing. I'll post my sd-ext startup script and instructions for using it here after dinner if you want to try it that way instead of with the installer app.
honestly, it's a much simpler process than the OP, but, hey, if it works, I'm not one to dismiss the method out-of-hand.
bigsupersquid said:
I don't think a chroot can hurt your phone. I even run mine bind-mounted into the root filesystem, with system r/w, and haven't ever had any problems a reboot didn't solve. and it's been since April since I had a forced reboot from running stuff in debian.
now, I don't know about the installer from the market, if it asks for root access multiple times, I'm not sure just what it's doing. I'll post my sd-ext startup script and instructions for using it here after dinner if you want to try it that way instead of with the installer app.
honestly, it's a much simpler process than the OP, but, hey, if it works, I'm not one to dismiss the method out-of-hand.
Click to expand...
Click to collapse
Sounds good to me.
non-loop sd-ext chroot method (prebuilt!)
Standard disclaimer:
These scripts and chroot method may bork up your phone, trash your userdata, destroy system files, get you slapped by your mother, make your phone catch fire and/or explode, and etc., ad nauseum.
Use at your own risk.
MAKE A NANDROID BACKUP BEFORE DOING THIS!
You'll probably be just fine, but it's nice to have a backup in case something goes haywire.
Disclaimer aside, it's worked great for me since March, hasn't crashed for months, and I use it multiple times per day.
My main inspiration was Saurik and his Debian & Android together on G1.
I'm sorry that I can't point to all the many, many sources I read through over the couple weeks it took me to get this set up, I took little bits from here, there, and everywhere, but Saurik's work was the main core of this system.
Apologies if you see some tidbit of your work in this... let me know and I'll be happy to give you credit.
Dysfunctions:
things that don't work while the chroot is running:
wifi hotspot in aospCmod and Bumblebee won't initialize; does work during chroot in aospCmod if turned on before chroot, though.
network info II app won't start during chroot; if opened before chroot it's fine.
ringtones on SDcard don't work in Bumblebee; but OI File Manager can read the sdcard during chroot.
these things still work ok once the chroot is exited on aospCmod. The chroot borks wifi on Bumblebee until reboot.
Click to expand...
Click to collapse
Info:
This script remounts / and /system both read/write and leaves them that way until you type exit in the bash shell of the chroot. Without r/w mounting of the / directory, installing Debian packages gives some errors, since it's running in the real root filesystem. Also, the / directory is wiped out on a reboot, so it's relatively safe to have mounted r/w. /system doesn't need to be r/w, I just like it that way, and I haven't had trouble with it since I was first experimenting with this. Feel free to modify the 'boot' script if having /system mounted r/w makes you nervous.
This has been tested on Zefie'sCM7 (outdated) and aospCmodOV ROMs.
It also worked on Bumblebee, but not as effectively.
The chroot will not stop Android from functioning. If Debian is busy with something, it will slow Android down, though.
You will still get/can make phone calls, text messages, etc. You can send the VNC viewer to the background and use Android apps while the Debian system is in the background.
Click to expand...
Click to collapse
On to the meat of the matter. I'm using an 8Gb SD card. I advise no smaller than 4Gb unless you just want to do command-line work in Debian and don't need a GUI.
First, these instructions require a Linux pc. On M$ Windoze? Use a Live CD or a virtual box, or you're on your own.
The first part of these instructions is to be completed on your pc. I'll let you know when to switch to the phone.
1) Mount your <empty> SD card on the pc. If it's not empty, back it up, because this will wipe it out. You'll need at least two partitions on it, three if you're using something like apps2sd (which I'm not using, and not really familiar with, so this tutorial is set up assuming you don't need to dodge an existing ext partition,) and another if you have a swap-enabled kernel and want to use it.
2) Use Gparted or a similar tool to partition the SD card. First partition FAT32 for Android, whatever size you feel you need. I'm using 1Gb.
Second partition is an ext2, ext3, or ext4 partition. Apps2SD style, you know what size and filesystem type you need here, I don't. For Debian on the 2nd partition, I advise 3Gb or more, ext2. ext4 corrupted my files, so I switched back to ext2. If you need an apps2sd partition, Debian will go on the 3rd partition, and you'll have to modify the two attached scripts accordingly.
If you're lucky enough to have a swap-enabled kernel, you can make a swap partition; it'll go last, whatever size is left. 256Mb-1Gb should be plenty depending on whether you use image processing or large compiling projects or some other memory hogging programs.
3) Mount the sd FAT32 and Debian ext partitions on the pc.
4) Download to your pc the base Debian Squeeze filesystem which I've debootstrapped, configured, and uploaded for you to save hours of hassle.
Also download to the same directory the two attached script files.
boot.txt
firstrun.txt
5) Open a ROOT shell. You need root privleges to untar the filesystem and retain its permissions. If you don't have a root shell, put sudo in front of the tar and cp-av commands.
6) cd to the directory you downloaded the squeeze_05_2011.tar.gz into. then type
Code:
tar -zxvf squeeze_05_2011.tar.gz
cp -av ./freshsqueeze/* /full/path/to/sdextDebianpartition
sync
and wait for it to finish.
7) type
Code:
cp ./boot.txt /full/path/to/sdFAT32partition/boot
cp ./firstrun.txt /full/path/to/sdFAT32partition/firstrun
sync
8) Now is the time to copy back the stuff you backed up from the SD card to the FAT32 partition, and any apps2sd style stuff if you have it. Then unmount your SD card and put it in the phone.
Now all remaining steps are done on your Optimus. You're finished with the desktop pc.
9) Open a terminal on your Optimus. I like SL4A, but Terminal Emulator works well too. Both are free.
10) Next step merges your existing Android system files into the Debian partition. This is neccesary because I haven't compiled a kernel and don't know of one for the Optimus with UFS enabled. So, Debian gets bind-mounted over the Android rootfs ( / directory) and having the Android system files accessible in the Debian filesystem is required to keep them playing nicely together, while protecting the original Android files from Debian at the same time.
Code:
sh /sdcard/firstrun
You won't need this script ever again unless you change ROMs and/or need to reinstall Debian. Changing ROMS without reinstalling a fresh copy of Debian may mess things up a bit since system files vary between ROMs and you'll still have the Android files from your previous ROM in your Debian filesystem.
This script and the 'boot' script are both listed at the bottom of this post if you want to read 'em.
11) Next, remount system r/w, copy the 'boot' file to /system/xbin and chmod 4755 /system/xbin/boot. If scripts are in /system/xbin and executable, you can run them with 'su -c'
Code:
su
mount -o remount,rw /system /system
cp /sdcard/boot /system/xbin
chmod 4755 /system/xbin/boot
mount -o remount,ro /system /system
OK, a basic Debian filesystem with no extra packages is now installed!
my Debian filesystem is on my 2nd sdcard partition. The comments in the 'boot' script should explain how to use another partition if you have apps2sd running or somesuch (I don't have many Android apps on my phone so don't need/use apps2sd function)
to use the script as-is, your linux flavor should be in the 2nd card partition. I use Debian, but any Debian-based distro should work, for example Ubuntu or DSL.
open a terminal and type
Code:
su -c boot
don't kill the terminal app... leave it running in the background.
when you're finished with linux, reopen the same terminal and type
Code:
exit
to cleanly dismount your linux. No reboot required!
Before you exit the first run of your new Debian system, you should download some packages. I advise tightvncserver, xfce4 (and xfce4-goodies if you want the extra glitz like a cpu monitor, bandwidth monitor, and such, without hunting the individual packages) and iceweasel so you can have a real rebranded firefox on your Optimus.
Code:
apt-get update
apt-get install tightvncserver xfce4 xfce4-goodies iceweasel
It'll take a while to download all that. Lots of data.
Once it's done downloading, configure tightvncserver.
Code:
vncserver
It'll ask you for a password. Choose one that's easy to remember. You'll need to enter it in the VNC viewer as well (next step)
IMPORTANT!
tightvncserver will ask you if you want a view-only password. Tell it no!
next:
Code:
vncserver -kill :1
to politely exit the vncserver. Otherwise you'll have to exit the chroot, reboot the phone, and run the 'boot' script again or it'll open server :2, :3, and so on each time you type vncserver. Each instance will eat more CPU, RAM, etc.
configure /root/.vnc/xstartup
Code:
echo '#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
export XKL_XMODMAP_DISABLE=1
xfce4-session&' > /root/.vnc/xstartup
after that,
you should use
Code:
passwd
to set a root password, and
Code:
adduser
to get a non-root account on there.
Code:
exit
will close the chroot. You can close the terminal after that until you're finished setting up the VNCviewer and want to start your lovely GUI.
Now, set up the VNC viewer like in the OP. Make sure your password matches the one you gave tightvncserver!
I advise 24 bit color. It slows things down ever so slightly, but to me, it's well worth the increase in eye candy you get over 8 bit.
most of the tutorials on the VNC suggest modifying the /root/.bashrc file to start the vncserver automatically (like here on xda) but I don't like that myself. I use the shell a lot, and the vncserver eats system resources. So, I manually start and stop the vncserver from the command line.
Code:
vncserver
to start, it defaults to a 1024x768 which seems to make programs happier than the 480x320 phone native resolution.
Code:
vncserver -kill :1
to stop it politely. Otherwise a phone reboot is required to get rid of vncserver files (by clearing out everything in the / directory which isn't replaced by the boot.img ramdisk) which make it open desktop :2, :3, and so on each time you run the program.
One major advantage to the bind-mounting in the rootfs is that Thunar works as a root explorer, and has access to the entire Android filesystem (except for the bind-mounted Debian directories, which hide the Android directories underneath, including /system/etc which is symlinked to /etc by the boot.img ramdisk,) as well as the complete Debian filesystem.
Pretty much everything I've tried works, unless it wants speed from the display. The VNC just slows that down way to much to use for video or games or suchlike. I'm working on native window support for X, but I need more practice in C to get it done.
Iceweasel works great, if a little slow, a rebranded full firefox on an ARMv6 device that mozilla won't release an apk for its wussy mobile version on. Go figure. The biggest problem is finding plugins compiled for ARM, the 'get plugin' button send you to sites offering x386 versions of the plugins. Yuk.
Icedtea open source java works fine.
Gnash plays ads but not videos.
Gimp works well.
Qemu works!
Eclipse even installs and runs (very slowly)
get-flash-videos captures flash exceptionally well. combined with an Android video player for .mp4 files, you can download and watch flash from lots of places, just not streaming.
alsa audio works through Iceweasel. Played audio clips from yodajeff.com just to test it.
3g works great.
Wifi detects the connection with iwconfig, I haven't tried sending data through it but the way 3g plugs right in I bet that wifi works equally well.
Since wifi and 3g work out of the box, I bet bluetooth would too with some config, but it needs extra packages to see the functionality.
The network meter plugin for xfce works. The device is rmnet0.
The cpu meter plugin also works.
At one point I had the battery meter from xfce-power-manager working but my last install broke it somehow. Ah, well.
once it's all together
open a terminal
to start it up:
Code:
su -c boot
for a gui,
Code:
vncserver
to kill the GUI,
Code:
vncserver -kill :1
to exit the chroot,
Code:
exit
the first time you run the GUI, you might want to add my Xfce_large theme to make the scrollbars and menubars easier to hit on the touchscreen. See the earlier post.
hopefully this helps people out. I spent quite a while getting it just how I wanted it, many googlings and picking bits from here and there.
contents of the scripts follow.
firstrun
Code:
#make /sd-ext directory if it doesn't exist
if [ ! -d /sd-ext ]
then
mkdir /sd-ext
fi
# mount 2nd sdcard partition
# if your linux is on a different partition than 2, substitute that number for the 2 in .../mmcblk0p2 below
# first unmount it; if not already mounted, system will echo 'umount: can't forcibly umount /dev/block/mmcblk0p2: Invalid argument' but this isn't an error to worry about
umount -l /dev/block/mmcblk0p2
mount -o noatime,exec,suid /dev/block/mmcblk0p2 /sd-ext
#copy files from Android to Debian without overwriting anything
yes n | cp -aiv /etc/* /sd-ext/etc
yes n | cp -aiv /root/* /sd-ext/root
yes n | cp -aiv /sbin/* /sd-ext/sbin
yes n | cp -aiv /sys/* /sd-ext/sys
boot
Code:
# debian lives here
export mnt=/sd-ext
# remount / and /system rw
mount -o remount,rw / /
mount -o remount,rw /system /system
# make new subdirectories in / for binding
for x in \
bin boot home lib media \
opt selinux tmp usr var
do
mkdir /$x
done
#make $mnt directory if it doesn't exist
if [ ! -d $mnt ]
then
mkdir $mnt
fi
# mount 2nd sdcard partition
# if your linux is on a different partition than 2, substitute that number for the 2 in .../mmcblk0p2 below
# first unmount it; if not already mounted, system will echo 'umount: can't forcibly umount /dev/block/mmcblk0p2: Invalid argument' but this isn't an error to worry about
umount -l /dev/block/mmcblk0p2
mount -o noatime,exec,suid /dev/block/mmcblk0p2 $mnt
# cleanup last session's tmp files, including last VNC session
rm -r -f $mnt/tmp
mkdir $mnt/tmp
# bind mount debian directories to /
for x in \
bin boot home lib media \
opt selinux tmp usr var \
etc root sbin
do
mount --bind $mnt/$x /$x
done
# set some system variables
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/etc:/sys:$PATH
export TERM=linux
export USER=root
export HOME=/root
# mount proc,sys,devpts
umount -l devpts
mount -o remount -t proc proc /proc
mount -o remount -t sysfs sysfs /sys
mount -t devpts devpts /dev/pts
# softlink framebuffer (for future use,) and existing mounts
ln -s /dev/graphics/fb0 /dev/fb0
cat /proc/mounts > /etc/fstab
cat /proc/mounts > /etc/mtab
# 'boot' with chroot into debian bash shell at /
chroot / /bin/bash
# done now, clean up after exit to keep Android happy
# remove softlinks and replace backed up mtab and fstab
rm /dev/fb0
cd /
# unmount subdirectories
for x in \
bin boot home lib media \
opt selinux tmp usr var \
etc root sbin
do
umount -l /$x
done
# remove non-Android subdirectories
for x in \
bin boot home lib media \
opt selinux tmp usr var
do
rmdir /$x
done
# remount / and /system ro
mount -o remount,ro / /
mount -o remount,ro /system /system
That is an excellent write up. Link added to first post.
appreciate the compliment.
it took two hours to type up and another two to redo it all after firefox crashed on my pc right as I was finishing.
if anyone notices issues or errors in it, let me know and I'll try to fix 'em.
I'll try to help out if anyone has problems getting it working, odds are I missed some detail or typo.
well it took me all day to install ubuntu on this pc to find out it was my video card so im using the built in video on the mb and it worked.I will be doing this tomorrow as its 2am here now.ive never had a problem installing ubuntu before lol.the live cd would just freeze no matter which flavor of linux i used.
ummkiper said:
well it took me all day to install ubuntu on this pc to find out it was my video card so im using the built in video on the mb and it worked.I will be doing this tomorrow as its 2am here now.ive never had a problem installing ubuntu before lol.the live cd would just freeze no matter which flavor of linux i used.
Click to expand...
Click to collapse
eek.
I don't really like ubuntu much, it reminds me too much of Windoze, all bloated up and running a bunch of stuff I never told it to
but I put it on after reading dev reccomendations to use it when making the final switch from windoze, and now I only use it for watching dvds and the stupid digital tv the broadcasters switched to a while back to obsolete everyone's receivers (use an hvr950 usb tuner, which I had to force an older driver into the kernel to get working.)
put debian on the pc to dev with, much less gripey and intrusive, but trickier to configure.
ummkiper said:
well it took me all day to install ubuntu on this pc to find out it was my video card so im using the built in video on the mb and it worked.I will be doing this tomorrow as its 2am here now.ive never had a problem installing ubuntu before lol.the live cd would just freeze no matter which flavor of linux i used.
Click to expand...
Click to collapse
I have yet to get Ubuntu running nicely on a android. I'm sure i'll figure it out soon enough. I'm donating close to 2-4 hours a day to this right now. I hope i can get everything running how i like without learning how to write my own code... which would take forever ...
oh i dont want it on android i just wanted it on my desktop but it appears my desktop has issues while everything works fine in windows ubuntu still freezes or restarts the gui.i have xubuntu on my ibm thinkpad its slow but runs its ubuntu with xfce so i guess ill use my laptop to do this and keep win on my desktop.
ummkiper said:
oh i dont want it on android i just wanted it on my desktop but it appears my desktop has issues while everything works fine in windows ubuntu still freezes or restarts the gui.i have xubuntu on my ibm thinkpad its slow but runs its ubuntu with xfce so i guess ill use my laptop to do this and keep win on my desktop.
Click to expand...
Click to collapse
it shouldn't really matter too much what machine you use to set things up, the key things you need are a way to untar the premade filesystem, ext2 support, and a usb port to transfer files to the phone.
you could download the files in windoze if your laptop lack web access.
you <might> be able to use a windoze utility to format the first part of the SD card with a small FAT32 partition, then use CWMA recovery to add an ext2 partition to the card, then extract with 7zip on windoze into the ext partition.
I used to have a freeware program to add ext2 support to windoze, but it's buried on one of my old 500Mb harddrives in a box somewhere. bet you could google something like that up if your laptop gives you trouble.
cp ./boot.txt /media/disk/boot
cp ./firstrun.txt /media/disk/firstrun
sync
cp: cannot stat `./boot.txt': no such file or directory
cp: cannot stat `./firstrun.txt': no such file or directory
yeah um i dont see these files in the tar and this is the errorr im getting so where do i get these 2 files from
ummkiper said:
cp ./boot.txt /media/disk/boot
cp ./firstrun.txt /media/disk/firstrun
sync
cp: cannot stat `./boot.txt': no such file or directory
cp: cannot stat `./firstrun.txt': no such file or directory
yeah um i dont see these files in the tar and this is the errorr im getting so where do i get these 2 files from
Click to expand...
Click to collapse
I made the tar some time back.
boot.txt and firstrun.txt are attached to the bottom of the instructions.
edit: per ummkiper's suggestion I have also linked the attachments right after the filesystem link.

[Q] How to delete files/folders from /sdcard?

After rooting my Galaxy Nexus with Wug's Root Toolkit and sim unlocking with the Docomo hack, and then restoring my apps/data (can't recall if I restored from GN Toolkit or Root Toolkit), my camera app was messed up--could snap pix but they didn't save; and video always fc'ed. The solution turns out to be to rename or delete the DCIM folder. I couldn't delete--so I renamed. Now I am trying to delete that DCIM.old folder and contents (eating up 1+G on my storage), but cannot delete either individual files or the folder. I'm sure there is a simple solution, but I can't find it. Help (even with a condescending attitude ) much appreciated!
zzcat
If you use a file explorer, that has it's standard directory at / then all you need to do is navigate to /mnt/sdcard/ then make sure it's mounted as R/W and not R/O, if all that is the way I said it, you shouldn't have problems deleting anything, if so, use the ADB and type:
Code:
adb shell rm /mnt/sdcard/<Folder>
That should then do the trick
You could also try the following Apps:
- Rootexplorer (paid)
- Astro File Manager
familyguy59 said:
If you use a file explorer, that has it's standard directory at / then all you need to do is navigate to /mnt/sdcard/ then make sure it's mounted as R/W and not R/O, if all that is the way I said it, you shouldn't have problems deleting anything, if so, use the ADB and type:
Code:
adb shell rm /mnt/sdcard/<Folder>
That should then do the trick
Click to expand...
Click to collapse
FamilyGuy, thanks for the suggestion, the problem seems to be bad permissions and I can't figure out how to fix them. Tried the "fix permissions" from recovery, as well as when booted, to no avail.
Typing
adb shell rm -rf /[directory]
gives me "permission denied"
So tried
chmod 666 /sdcard/.../*
but get an "operation not permitted" message.
So I'm really stuck here...
familyguy59 said:
If you use a file explorer, that has it's standard directory at / then all you need to do is navigate to /mnt/sdcard/ then make sure it's mounted as R/W and not R/O, if all that is the way I said it, you shouldn't have problems deleting anything, if so, use the ADB and type:
Code:
adb shell rm /mnt/sdcard/<Folder>
That should then do the trick
Click to expand...
Click to collapse
Update: solved
boot into recovery mode
mount /data
adb shell
rm, rmdir etc. all work as expected from here, no need to chown or chmod anything
zz
I see you've solved this, but i thought i would throw this in anyway...
The easy way is to delete the files from /data/media
The sdcard directory is a symlink, so go to the true folder and you should have more success...
Sometimes the file ownerships get messed up after a cycle of recovering the OS and restoring files.
http://forum.xda-developers.com/showthread.php?t=1515291&page=2
If you have any other directories/files that you can't modify or delete, then boot into CWM recovery, plug in the USB cable, go into adb shell. Also make sure that /data is mounted in the CWM mounts menu. Then:
cd /data/media
chown -R media_rw.media_rw *
This fixed it for me and others.
cmstlist said:
Sometimes the file ownerships get messed up after a cycle of recovering the OS and restoring files.
http://forum.xda-developers.com/showthread.php?t=1515291&page=2
If you have any other directories/files that you can't modify or delete, then boot into CWM recovery, plug in the USB cable, go into adb shell. Also make sure that /data is mounted in the CWM mounts menu. Then:
cd /data/media
chown -R media_rw.media_rw *
This fixed it for me and others.
Click to expand...
Click to collapse
Thanks for this and other suggestions--my solution was trial and error, thrashing around in the dark (my unix command line chops are really, really rusty), and these are far more elegant. It's good to understand the underlying problem, your wisdom is appreciated.
Yes, permissions were messed up after rooting and applying a sim unlock hack, wiping and restoring from pre-unlock backup set. I see it so clearly now...
Problem can somebody help me?
Hello. I have a problem with my motorola defy+ running on gb 2.3.6 and is not ROOTED. Still he has an annoyng problem. After installing an aplication (not from the market) i saw that it didn't save data on the sd card. I uninstalled it and after a data factory reset i install apps such as temple run and Brother in Arms 2. At temple run it gave me this mesage
"File Access Problem Caution, unable to write files. This means your game progress can't be saved! Reason: Access to the path "/mnt/sdcard/Android/data/com.imangi.templerun/files/spaceholder.dat" is denied."
Also at Brother in Arms 2 the game didn't save. I rest the phone abouat 7-8 times.I changed the sd card. Note that the card was a 16 gb kingmax class 6 and put the 2 gb card that came with the phone. It all work smoothly. So what is the problem the sd card or the phone's software. Please answer i'm desparate and tired of wasting time.
This thread is about the Samsung Galaxy Nexus which has no external SD and uses a very different storage structure. I'm afraid we can't really help you here. Try the Defy forum.
Sent from my Galaxy Nexus using Tapatalk 2
zzcat said:
FamilyGuy, thanks for the suggestion, the problem seems to be bad permissions and I can't figure out how to fix them. Tried the "fix permissions" from recovery, as well as when booted, to no avail.
Typing
adb shell rm -rf /[directory]
gives me "permission denied"
So tried
chmod 666 /sdcard/.../*
but get an "operation not permitted" message.
So I'm really stuck here...
Click to expand...
Click to collapse
Before chmod the folder, you needed to be root by entering 'su' after 'adb shell' .
It worked from cwm, because cwm gives root access.
Linux/Android are all about permissions.
Sent from my i9250
cmstlist said:
Sometimes the file ownerships get messed up after a cycle of recovering the OS and restoring files.
http://forum.xda-developers.com/showthread.php?t=1515291&page=2
If you have any other directories/files that you can't modify or delete, then boot into CWM recovery, plug in the USB cable, go into adb shell. Also make sure that /data is mounted in the CWM mounts menu. Then:
cd /data/media
chown -R media_rw.media_rw *
This fixed it for me and others.
Click to expand...
Click to collapse
I tried your theory, and it didn't work, still get the message" unable to change ownership permission denied, in recovery mode.
we are still trying to find a solution, here is the discussion: http://www.slatedroid.com/topic/32434-i-got-my-smartq-t20/page__st__260 on Post # 277
rocketero said:
I tried your theory, and it didn't work, still get the message" unable to change ownership permission denied, in recovery mode.
we are still trying to find a solution, here is the discussion: http://www.slatedroid.com/topic/32434-i-got-my-smartq-t20/page__st__260 on Post # 277
Click to expand...
Click to collapse
Sorry to hear that. It sounds like the problem you are having is with a completely different device, so I can't really say why this may be occurring - I don't know how your device's file system is structured. This advice is specifically for the Galaxy Nexus. If a version of CWM exists for your smartQme device, I can't speak to whether it works properly and interprets commands the same way ours does.
cmstlist said:
Sorry to hear that. It sounds like the problem you are having is with a completely different device, so I can't really say why this may be occurring - I don't know how your device's file system is structured. This advice is specifically for the Galaxy Nexus. If a version of CWM exists for your smartQme device, I can't speak to whether it works properly and interprets commands the same way ours does.
Click to expand...
Click to collapse
it's a 9.8 inches tablet branded named called "LePanII'. it has ICS now, before we had Honeycomb 3.2.1.
The manufacture of this tablet did such a bad partitioning that the /system partition was left only with merely 4MB of free space in it.
rocketero said:
it's a 9.8 inches tablet branded named called "LePanII'. it has ICS now, before we had Honeycomb 3.2.1.
The manufacture of this tablet did such a bad partitioning that the /system partition was left only with merely 4MB of free space in it.
Click to expand...
Click to collapse
Good luck with your issue. I doubt it's related to the one we were having on the GNex though.
cmstlist said:
Sometimes the file ownerships get messed up after a cycle of recovering the OS and restoring files.
http://forum.xda-developers.com/showthread.php?t=1515291&page=2
If you have any other directories/files that you can't modify or delete, then boot into CWM recovery, plug in the USB cable, go into adb shell. Also make sure that /data is mounted in the CWM mounts menu. Then:
cd /data/media
chown -R media_rw.media_rw *
This fixed it for me and others.
Click to expand...
Click to collapse
Sorry if my question is dumb.
Does this command solve the problem for all the folders and sub-folders in sdcard? Thank you for your help!
Sent from my Galaxy Nexus
/data/media # chown -R media_rw.media_rw*
BusyBox v1.20.2-jb static (2012-10-25 21:29 +0100) multi-call binary.
Usage: chown [-RhLHP]... OWNER[<.|:>[GROUP]] FILE...
Change the owner and/or group of each FILE to OWNER and/or GROUP
-R Recurse
-h Affect symlinks instead of symlink targets
-L Traverse all symlinks to directories
-H Traverse symlinks on command line only
-P Don't traverse symlinks (default)
I got this after giving the commands from recovery in adb shell.
What does that mean?
Jar3112 said:
/data/media # chown -R media_rw.media_rw*
BusyBox v1.20.2-jb static (2012-10-25 21:29 +0100) multi-call binary.
Usage: chown [-RhLHP]... OWNER[<.|:>[GROUP]] FILE...
Change the owner and/or group of each FILE to OWNER and/or GROUP
-RRecurse
-hAffect symlinks instead of symlink targets
-LTraverse all symlinks to directories
-HTraverse symlinks on command line only
-PDon't traverse symlinks (default)
I got this after giving the commands from recovery in adb shell.
What does that mean?
Click to expand...
Click to collapse
OK solved, I forgot the space before the *!
Worked like a charm!!
Sent from my Galaxy Nexus

Categories

Resources