Getting info about framebuffer - Nexus 7 Q&A, Help & Troubleshooting

Hi, I am thinking of buying Nexus 7, but I would really like to have some way to stream it's display to at least computer. That can be most easily (well, more like the most primitive way) by sending content of framebuffer via wifi. That however requires the framebuffer to be accessible and reasonably big (eg. small).
Now, I do not have it yet, and I do not know anybody who has it, so I am asking you to get some info about framebuffer for me. It will not take more than 5 minutes and only things you need is ADB and root.
So, if you decided to help me, thank you, and let's get started.
I want you to just run several commands on your device under root and then send me the result files.
1. Device permissions
Code:
ls -l /dev > /sdcard/xda_tass.txt
ls -l /dev/graphics >> /sdcard/xda_tass.txt
These two commands will tell me what device files are available on N7 and their permissions. The output is saved to file on sdcard (well, I hope the memory in N7 is called /sdcard. If not, just change it to some existing path).
2. Testing the framebuffer
Code:
time (cat /dev/graphics/fb0 > /dev/null) >> /sdcard/xda_tass.txt 2>&1
This command will tell me how long does it take to read framebuffer. Run it 3-5 times, so that I have some average values. If "/dev/graphics/fb0" does not exist, try "/dev/fb0".
Code:
cat /dev/graphics/fb0 > /sdcard/xda_tass.dat
Copies the framebuffer into file, so that I know how big it is and which format does it have. This is like taking screenshot, so make sure there is not something embarrassing on your display
3. Send me the files
Take files "xda_tass.txt" and "xda_tass.dat", ZIP em' up and put it somewhere. That is all.
I would be really glad if somebody could do that for me, thanks

Here you go
http://db.tt/3WBr5BWK
Also the sdcard is now /storage/sdcard0, yeah idk why
Sent from my Nexus 7 using Tapatalk 2

Thank you
Looks okay, even though the framebuffer is huge. Well, I suppose it is not a problem to compress it on that quad-core craziness. And, it has two framebuffers (fb0 and fb1) - I wonder why.
Also, I cannot decode data from that framebuffer. Could you please get me also the second framebuffer?
Code:
cat /dev/graphics/fb1 > /storage/sdcard0/xda_tass_fb1.dat

Tasssadar said:
Thank you
Looks okay, even though the framebuffer is huge. Well, I suppose it is not a problem to compress it on that quad-core craziness. And, it has two framebuffers (fb0 and fb1) - I wonder why.
Also, I cannot decode data from that framebuffer. Could you please get me also the second framebuffer?
Code:
cat /dev/graphics/fb1 > /storage/sdcard0/xda_tass_fb1.dat
Click to expand...
Click to collapse
Here you go
http://db.tt/Nt6kBM83
Sent from my Nexus 7 using Tapatalk 2

Data from fb1 look about as random as those from fb0 to me. Gonna need some more samples, but I can do that by myself once I'll have my own N7.
Thanks for helping me

Tasssadar said:
Data from fb1 look about as random as those from fb0 to me. Gonna need some more samples, but I can do that by myself once I'll have my own N7.
Thanks for helping me
Click to expand...
Click to collapse
No problem lol
Sent from my Jelly Nexus S

@Tasssadar how did you decode the framebuffer? I'm actually trying to get a screenshot of MultiROM, but I can't figure out how to decode it. I'm trying to open it with GIMP by changing the settings and moving the width value, but I can't get a clear image.

Your signature says you have the 2013 Nexus 7. MultiROM doesn't use framebuffer on that device because of severe kernel driver bug. You can still take screenshots though - tap on the screen with four fingers at once. The screen should flash and screenshot will be saved to /sdcard/multirom/ (accessible in Android only with root in /data/media/0/multirom).
The format should be RGB Alpha and the dimensions should be 1200x1920.

Tasssadar said:
Your signature says you have the 2013 Nexus 7. MultiROM doesn't use framebuffer on that device because of severe kernel driver bug. You can still take screenshots though - tap on the screen with four fingers at once. The screen should flash and screenshot will be saved to /sdcard/multirom/ (accessible in Android only with root in /data/media/0/multirom).
The format should be RGB Alpha and the dimensions should be 1200x1920.
Click to expand...
Click to collapse
Damn, you put so many easter eggs in MultiROM
That's interesting though... That's why when pulling the framebuffer I only got a black screen. In the recovery, instead, I could get something "visible" (still not the actuall image, though).

@Tasssadar Is it still possible to take screenshots on the new multirom for flo? When I tap with four fingers nothing happens.

Since v27, screenshots are taken with power+volume down combo like in Android ( you have to press power button first though, cause I'm lazy). They are also saved as PNG instead of raw data, and they are in folder /sdcard/Pictures/Screenshots like Android screenshots. I mentioned it in the changelog

Related

New Kernel for Eclair with HW3D support

Until Vilord get's back and can post it in his other thread. Here is a kernel for ECLAIR ONLY that will help with open gl performance it's not setting permission properly on boot yet, but when the system's booted chmod a+rw /dev/msm_hw3d* than stop/start. Again I'm sure if I don't Vilord will get the permissions fixed up when he's back.
Big thanks to DZO again for applying all of the needed changes
The google live wallpapers do not work properly, however the visualization papers do, as well as the wallpapers from the market because they are written in just open gl, not lite.
This brings neocore results from 01.6 to 15.6 fps!
Results may vary.. (I like that phraze )
Download
http://www.mediafire.com/?sharekey=f6ec00ed7ed721a8d0d290dca69ceb5cf8913d4b9300395c16f8cf40558950b4
If you like my work and would like to donate me a beer you can by clicking here Beer Me
where's it located?
posted them to media fire. When Vilords back we'll put them on sourceforge.
FREAKING SWEET!!!!
You Da Man!!!
Is there a zImage version available for haret? thanks.
If you had to remove libGLES_qcom.so I'm not quite sure how you're actually getting hardware graphics, since it's the driver...
Is this only for 3D animation on home screen or are we likely to see any performance upgrades during day-to-day use of Eclair (as in screen scrolling or switching between apps).
Pl clarify.
bri3d said:
If you had to remove libGLES_qcom.so I'm not quite sure how you're actually getting hardware graphics, since it's the driver...
Click to expand...
Click to collapse
bri3d. hit me up on gtalk.
After realizing the permissions weren't being set properly still I set them with the commands in the first post.
There is a definite increase in some of the live wallpapers however some do not work properly at all now. I believe it is because of opengl es lite not being supported. As example the grass wallpaper now only has a white background, although the grass looks alot better. lol. Wallpapers off the market are much smoother now.
however this is a huge step in the right direction
Seeing the same issues - it's a shame the current Q3Dimension driver for this chipset doesn't support everything Live Wallpapers want. On the other hand, the couple games I've tested thus far work, along with Street View.
"Grass," "Spectrum," and "Polar Clock" (after changing the colors in the options, thanks mssmison!) seem to be the only live wallpapers that work for me (Cube does too, but it's not GL) - Magic Smoke crashes on 320x240 due to a bug in the wallpaper itself (mssmison confirms it works fine on bigger resolutions), Galaxy uses an unimplemented GLES call, Nexus just doesn't work (this is the one that confuses me most - no unimplemented call errors and the GPU allocates just fine, just doesn't display anything), Water's got some unimplemented calls too.
We'll see if a newer Q3Dimension version ever surfaces or downport wallpapers - until then, I think this is parity with official MSM7500 devices so it's about the best we can do.
bri3d said:
"Grass," "Spectrum," and "Polar Clock" (after changing the colors in the options, thanks mssmison!) seem to be the only live wallpapers that work for me (Cube does too, but it's not GL)
Click to expand...
Click to collapse
Interesting about changing colours - I'm running into an issue where the bootanimation on heroblend on the nomorootfs nand (or nand 2.0) completely whites out - I've replaced with a different bootanimation and it works fine.
Are there some colours out of limits?
When I ran this on my Vogue it made everything super huge...what did I do wrong?
plemen said:
Interesting about changing colours - I'm running into an issue where the bootanimation on heroblend on the nomorootfs nand (or nand 2.0) completely whites out - I've replaced with a different bootanimation and it works fine.
Are there some colours out of limits?
Click to expand...
Click to collapse
yes there are, I havent had time to go through and define them as of yet.
mssmison said:
Until Vilord get's back and can post it in his other thread. Here is a kernel for ECLAIR ONLY that will help with open gl performance it's not setting permission properly on boot yet, but when the system's booted chmod a+rw /dev/msm_hw3d* than stop/start.
If you like my work and would like to donate me a beer you can by clicking here Beer Me
Click to expand...
Click to collapse
A little help please- is it one line in terminal:
chmod a+rw /dev/msm_hw3d*
or is there another line? What do you mean by "than stop/start"?
So if I already flashed to mssmison's 2.1 build using the 480 nbh then changed the density to 120 and flashed to 320 nbh, what exactly do I do with this .nbh? Do I have to start from scratch or can I use the volume up menu to update?
hexto said:
So if I already flashed to mssmison's 2.1 build using the 480 nbh then changed the density to 120 and flashed to 320 nbh, what exactly do I do with this .nbh? Do I have to start from scratch or can I use the volume up menu to update?
Click to expand...
Click to collapse
What are you trying to do? If you are trying to get the dialer to fit correctly download the qgva update tar file. Open it using 7 zip after download and open the build.prop file change the density to 110 save it and run the update tar file via the new installer.
Reddog80p said:
What are you trying to do? If you are trying to get the dialer to fit correctly download the qgva update tar file. Open it using 7 zip after download and open the build.prop file change the density to 110 save it and run the update tar file via the new installer.
Click to expand...
Click to collapse
Trying to get HW3D working
hexto said:
Trying to get HW3D working
Click to expand...
Click to collapse
Flash the nbh from the first post in this thread then run the app from this post under opengl support..
http://forum.xda-developers.com/showpost.php?p=5486428&postcount=1

Reduce LCD Density Setting in Build.Prop For Higher Res Look

Update: I installed Spare Parts, as mentioned by appelflap later in this thread, disabled compatibility mode, then followed the directions in this post, and I have a working status bar, good resolution, and in a better place in most cases.
Update: Check out appelflap's APK that makes this whole process a lot easier. Note that some users are reporting a black screen after using the file, so be prepared in case you have to use adb shell to put your original build.prop file in place. If you do not want to risk it, Notepad++ makes for an easy edit once you pull the file to your PC. If you have fallen prey to the black screen problem, lpsi2000 found a solution that uses an update.zip approach.
In the /system/build.prop file, I changed this line:
ro.sf.lcd_density=240
Click to expand...
Click to collapse
to this:
ro.sf.lcd_density=160
Click to expand...
Click to collapse
This is a setting that Google normally recommends if you have a larger screen (like Dell's Streak), but the side effect of using it on the 800x480 screen of the captivate is that everything is smaller.
With this, menus have smaller text (more options on screen), in-app buttons are smaller, and it just has the same feeling of being on a PC and moving from a low resolution LCD monitor to a high resolution LCD monitor.
There are a couple of glitches so far. It appears that some apps want to render in the previous resolution. For example, Skyfire and Root Explorer would not render in full screen, Android Market renders full screen but the search is in the old resolution, and the status bar is slightly garbled but still usable. Also, the dial pad is smaller (as you would expect showing a picture made for a low res display on a high res display) but the rest of the phone app is fine. The camera app fills the screen just like it did before.
With this setting, I really feel like I'm getting some use out of the high resolution display on this phone.
The apps that are rending in the low res mode of the original setting seem to be pulling their setting from somewhere else. Does anybody have an idea where that setting may be? After trying this, I can't imagine going back to what almost seems like an "accessibility mode".
I've only used LauncherPro with this setting, so no idea how the Samsung launcher looks. I attached screenshots of what some things look like. I can put some game screenshots in another post if anybody is interested. 3D games look sharper to me in this mode, but I have no scientific way of testing if it is because it is rendering in higher res or if my own excitement is clouding my vision.
Update: I suspect the missing setting is found in the /system.prop file. It has the ro.sf.lcd_density=240 setting. I tried changing it to 160, but it keeps going back to 240 after a reboot of the phone. Any ideas how to make this stick?
Warning:: TWLauncher does not play well with these changes. Make sure to have LauncherPro set up as your default launcher before trying this.
So you're pulling it off the cappy then editing putting back....do you need to change permissions?
The way that I pulled it out to edit on my PC was with this:
adb pull /system/build.prop
Click to expand...
Click to collapse
You will need root access in order to put the changed file back. What I did was
adb push build.prop /sdcard
Click to expand...
Click to collapse
I then used Root Explorer to copy the build.prop from /sdcard to /system. I didn't change any permissions other than just copying the file and rebooting.
Wow man that's pretty cool, it's got a few little glitches but nothing serious. One of the things I wish I could so though is make my Beautiful widgets clock go all the way across the top. I'm not sure if this is a placebo effect (I donno if that's possible since this should have nothing to do with it) but it seems like my soft buttons respond more often....I'm prolly nuts but it doesn't seem like I need to push....push...%$^&*^ PUSH.....and back to home.
I'm hoping someone will have a great idea on how to keep the /system.prop file from updating itself on boot. I'm thinking that if we can get the ro.sf.lcd_density=240 setting to stick to 160 after a reboot, that might fix the few instances where an app won't render full screen.
I've tried chmod 666 system.prop and chown root.root system.prop but it still gets returned to normal after rebooting.
Wow I'm excited to test this out. Couldn't we get someone to code this into the startup script theoretically?
Edit: Tried it out. Really really nice. If only we could get the rest of the apps to work the right way... right res.
One thing also that's cool is in launcherpro you can add more columns to the drawer so you can fit an insane amount of apps on screen.
Sent from my GT-I9000 using Tapatalk
Also out of curiosity, have you tried any other DPI like 200? Our does it need to be either or to keep it proportional?
Sent from my GT-I9000 using Tapatalk
Lower resolution works as well. Here are some comparisons. 160, 240, 320. 200, since someone asked.
wow, this could REALLY be nice.. Just need to fix everything, but like others have said no HUGE things that cause it to be unusable, but I would love to see everything correct.
Also out of curiosity, have you tried any other DPI like 200? Our does it need to be either or to keep it proportional?
Click to expand...
Click to collapse
No, the only reason I chose 160 was because it is listed as "MDPI" in the Android SDK. (We were using "HDPI" with 240.)
I only figured it was a "supported" number, so I started there, but most any number will do. You can see a chart where it recommends certain numbers based on resolution or screen size, but I think these recommendations are to cover everybody, which includes folks who can't (easily) see small text or icons.
The chart that shows Google's recommendations is here.
reading around, it seems that the files need to be put back to read only.
phlunkie said:
reading around, it seems that the files need to be put back to read only.
Click to expand...
Click to collapse
I thought so also, but you don't need to. All I'm doing is copying it with root explorer to sd, then using astro to edit the line and root explorer to put it back. Reboot and your GTG. Everything works fine.
Sent from my GT-I9000 using Tapatalk
So the settings are sticking after a reboot? I will have to try this when I get home.
Sent from my SAMSUNG-SGH-I897 using XDA App
phlunkie said:
So the settings are sticking after a reboot? I will have to try this when I get home.
Sent from my SAMSUNG-SGH-I897 using XDA App
Click to expand...
Click to collapse
After I edited the build.prop and the build.prop.bak files in the /system directory it works fine after reboot. A problem that I have is that TouchWiz force closes after editing the files.
Using this on SGS made:
- notification bar unreadable (kindof text overlap@240160 setting).
- Launcher pro works.
- Market scales nice.
- big list's buttons are now nice
//edit: changed to 200 - seems to be great compromise.
@up
Bad practice. U shouldnt have edited ur build.prop.bak file, becouse it is actually a backup of original build.prop, made by RootExplorer (guess). In case u want to revert to original content, u just delete edited file and delete .bak from this one.
xan said:
Using this on SGS made:
- notification bar unreadable (kindof text [email protected] setting).
- Launcher pro works.
- Market scales nice.
- big list's buttons are now nice
//edit: changed to 200 - seems to be great compromise.
@up
Bad practice. U shouldnt have edited ur build.prop.bak file, becouse it is actually a backup of original build.prop, made by RootExplorer (guess). In case u want to revert to original content, u just delete edited file and delete .bak from this one.
Click to expand...
Click to collapse
Any pics? Love to see the difference.
Sent from my Nexus One using XDA App
Here they are.
I'm trying to figure out how to make those other applications also use the full screen when at a different resolution. I tried the method here
http://forum.xda-developers.com/showthread.php?t=739647
to run a script that rewrites the /system.prop file, and it didn't fix anything, so either that is not where the applications are getting the property from, or we need to rewrite the file earlier in the boot process.
Are you sure those apps are graphically able to scale? Maybe touchwiz does not take scaling into account (at least with native apps) because the screens are all 4 inches.

[Mod][MotoActv] Tweaks+Mods Pack!

ive gathered some things and did a few tests on my MotoActv since ive gotten it and did some tweaks here and there and i added the following features to mine and put them into a flashable zip for u all
-init.d support (plus some scripts to make it faster then ever) (tested and working (makes two files in sdcard on boot to show it) (picks and chooses when to work now for some reason, so i put an app i made that loads scripts when onCreate()'d and sometimes on-boot)
-Viper4Android sound system (only works for bluetooth headsets if enabled, but its sounds better with good settings)(see credits)
-OpenVPN (idk if theres a use for us but i added the required files (no GUI)
-UsbEnabler.apk (see credits)
-Adblock host (hopefully it works i havent been able to test yet)
-lag-free entropy (so far seems to work, as im not lagging switching launchers anymore)
-MotoActv DPI (my own personall app i made for Changing dpi from 90,100, and stock(120)
-Sqlite3 + init.d sqlite3 optimizer
-Busybox Run-parts (for init.d, still picks and chooses when to work)
-100 Dpi When-Flashed (can be changed back to stock with the MotoActv DPI app i made)
-minor-to-major tweaks from init.d scripts and other methods
-DalvikCache2Sd (not sure if it truly tested working, but i do have a tiny bit more space+no lag like other 2SD methods
soon to be added:
I take bare minimum credit for these, i mostly used this personal zip for when i update my MotoActv's rom, this can be universal for other androids, but it was initially made to the MotoActv watch running custom roms
Credits to give:
(will edit when i get forum post urls and OP's names)
Viper4Android:
OP = @zhuhang
Thread = http://forum.xda-developers.com/showthread.php?t=2191223
UsbEnabler:
OP = @fagalto
Thread = http://forum.xda-developers.com/showthread.php?t=2396138
init.d scripts, OpenVpn, Entropy:
i extracted from the rom on my phone so idk where they originally came from
Init.d App(unreleased w/o mod_pack)+MotoActv DPI:
OP:me @jkok for developing and publishing
Thread (MotoActv DPI):
http://forum.xda-developers.com/showthread.php?t=2435370
Gallery+Live Wallapapers:
Google, But @ClearD for giving me the zip with the script+apks
the zip:
i put together, made the script, signed+released for general use for others:
future credits will be made when i add more things.
Download:
Reusable Download Link
Awesome!
Here's a zip (with changed mounting, again; this time using the exact same one that I use for the rom) of the Live Wallpapers + Gallery apks. Hopefully, this one will work fine.
ClearD said:
Awesome!
Here's a zip (with changed mounting, again; this time using the exact same one that I use for the rom) of the Live Wallpapers + Gallery apks. Hopefully, this one will work fine.
Click to expand...
Click to collapse
well thanks ClearD i can do the script just fine, some of the mountpoints are universal like what i use
umount("/system");
or
run_program("xbin/mount", "/system"); (might be wrong on the xbin part, just going by memory
run_program("xbin/umount", "/system");
but the resolution on the galery on your motoactv rom is too big for it, it resizes dont get me wrong, but it needs to do a single horizontal row cause if u overscroll to the farest right u see there is second or more rows going down, imma fine the sourcecode for the galery2.apk, and make a single-row version when i find it =)
jkok said:
well thanks ClearD i can do the script just fine, some of the mountpoints are universal like what i use
umount("/system");
or
run_program("xbin/mount", "/system"); (might be wrong on the xbin part, just going by memory
run_program("xbin/umount", "/system");
but the resolution on the galery on your motoactv rom is too big for it, it resizes dont get me wrong, but it needs to do a single horizontal row cause if u overscroll to the farest right u see there is second or more rows going down, imma fine the sourcecode for the galery2.apk, and make a single-row version when i find it =)
Click to expand...
Click to collapse
Ah, sweet! That sounds good. I couldn't get it to mount properly any other way so far, but it could have been something as simple as a typo. If it does actually work, then I might use that in the future. That's the one I tried with the last iteration.
ClearD said:
Ah, sweet! That sounds good. I couldn't get it to mount properly any other way so far, but it could have been something as simple as a typo. If it does actually work, then I might use that in the future.
Click to expand...
Click to collapse
the universal way i do my scripts is
mount("ext3", "MTD", "system", "/system");
unmount("/system");
and it always seemed to work for me, so thats why i call it universal anyways
but the other ways i posted seemed to work for me when i tried em, i just used this way cause it was in a zip for a motoactv rom (i think it was yours or the battery mod)
Opps! i was wrong, its not
run_program("xbin/mount", "system");
its
run_program("sbin/mount", "system");
lol i had to check my other mod zips lol
jkok said:
the universal way i do my scripts is
mount("ext3", "MTD", "system", "/system");
unmount("/system");
and it always seemed to work for me, so thats why i call it universal anyways
but the other ways i posted seemed to work for me when i tried em, i just used this way cause it was in a zip for a motoactv rom (i think it was yours or the battery mod)
Click to expand...
Click to collapse
Lol no doubt, I went through the same thing with the battery mod, looking over and over for one that worked better. I'd prefer the xbin/mount method, but for some reason, it was hit and miss on my end with end users. Not sure why, unless busybox wasn't set up right somehow.
Just updated the mod_pack with more features!
Sorry but the only thing i havent really been able to fix that well way the init.d it seemed to workwhen i first released this mod_pack, but it seems to pick+choose when to work, so i added 2 other methods for init.d (one of which is an app i made, yet to release that loads the scripts when the app is onCreate()'d and sometimes on-boot when SuperUser allows it)
but there are some great new features that WILL work, along with some of my own personall apps, tweaks, and clock faces =)
Again: this mod_pack is meant for MotoActv's running a custom rom, and Not meant for AOSP based MotoActv Roms
Tested and confirmed working (except init.d that picks and chooses) on @ClearD 's ClearRom 1.2.0 T2 (and my own personal (un)Official 1.2.1 T1 i made for him)
For some reason all of the mods are being denied superuser, any ideas? I am setup to automatically allow all requests
Edit: Installed SuperSU and my problem has been resolved
Has there been anything definitive about the entropy thing? The last consensus I saw by anyone not potentially making money from a fix is that at best it's just forcing the processor to stay awake, decreasing battery life.
Saeviomage said:
Has there been anything definitive about the entropy thing? The last consensus I saw by anyone not potentially making money from a fix is that at best it's just forcing the processor to stay awake, decreasing battery life.
Click to expand...
Click to collapse
well by my testing before my motoactv went kaput it didnt affect the battery any noticeable amount, but it did solve some-to-all of the lag from switching launchers on the ClearDroid 1.2.0_T2 rom, i cannot make or update this mod-pack anymore because i dont like submitting a mod-pack that is untested, and since my motoactv went kaput i cannot test it anymore but if u have any questions feel free to ask and ill try to answer the best i can for now =)
not sure what is the right place to ask this... How does DPI change work? Does it mean the "system" screen resolution is changed? Let say, what is the "Full Screen" resolutions in 90/100/stock(120?) dpi's??? Where to read about it if it is not so simple???
yuiop0 said:
not sure what is the right place to ask this... How does DPI change work? Does it mean the "system" screen resolution is changed? Let say, what is the "Full Screen" resolutions in 90/100/stock(120?) dpi's??? Where to read about it if it is not so simple???
Click to expand...
Click to collapse
Dont worry its ok to ask here, since i made this app after all , i might as well answer how this works =)
well to make it shorter and more understandable to alot more people:
Yes, it is the overall resolution of the screen:
DPI (dots-per-inch) is more like the size range to view images/displays/graphics on ANY of your LCD/LED Screened devices including androids, I-craps(iPhones/ipods )(sorry i dont like apple too much, bad excperiences, dont get offended if u like it as its just my personal preferences), blackberries, windows phones, TV's, computer Monitors, etc:
the stock setting for HDPI phones (the more common screened ones now) is 240, say if u lower it, the images get smaller, if u raise it it gets bigger (maybe even too big for the screen to handle correctly);
but since the MOTOACTV has a smaller screen as u can obviously see (if u have one that is, as i dont know others posesions =P), its default for the stock rom is 120 (1/2 of HDPI if u notice the math) and 120 is as big as it should go cause say for example 130 dpi, it makes the images slightly too big for the screen, but slightly smaller values (100 is usually smallest for alot of peoples eyes for the watch, but for some people like me that like them a tad smaller for sharp small details, i put 90), but literally the smaller the amounts go, the smaller the images(and possible errors, i.e ES File Explorer crashes below 120 DPI untill u restore to 120+) , and for the smaller screen we have u cant go too big (121+), or too small (>=90-100), so i put those details of 90,100,and 120 (no 110 as it doesnt make too much of a difference by what i saw)
but there is (a) way(s) to check what DPI u are at currently:
METHOD1.check your build.prop file under /system/build.prop by doin these ADB commands (**new line is a new command**) (commands stop at <EOC>)
adb remount
adb pull /system/build.prop
<EOC>
check somewhere using notepad for this line (NOTE: if u want to edit to push to your device use notepad++, search for it on google if u dont already have it, as regular notepad corrupts it)
ro.sf.lcd_density=(your current DPI is displayed here)
if u decide to change it that way and want to apply it MAKE A BACKUP!!!, then change it in notepad++ and save it, then goto the directory it is in in the terminal/command prompt and do (**new line is a new command**) (commands stop at <EOC>)
adb remount
adb push build.prop /system/build.prop
adb shell chmod 644 /system/app/build.prop
adb reboot
<EOC>
METHOD 2: Any DPI Checking/changer app (there might be some good free ones, i.e. pimpmyrom has a density changer (DPI changer) that works the same as mine i think, it changes the DPI value in the Build.prop and it WILL stick over reboots, just not rom flashes (as it overwrites it and my change)
if u want to see how i did this(if u understand java/android applications) u can check This app on my github, its acually fairly easy and lightweight compared to others
https://github.com/kittleapps/MotoActvDPI
and the exact class that does this (using a library), is this
https://github.com/kittleapps/MotoA...om/KittleApps/app/motoactvdpi/MainScreen.java
as u can see it changes it to 90,100, and 120 quite simply (with root access of course)
and sorry for this long message but it explains not only your question, but possible future questions on how this app works =)
jkok said:
but there is (a) way(s) to check what DPI u are at currently:
METHOD1.check your build.prop file under /system/build.prop by doin these ADB commands (**new line is a new command**) (commands stop at <EOC>)
adb remount
adb pull /system/build.prop
<EOC>
check somewhere using notepad for this line (NOTE: if u want to edit to push to your device use notepad++, search for it on google if u dont already have it, as regular notepad corrupts it)
ro.sf.lcd_density=(your current DPI is displayed here)
if u decide to change it that way and want to apply it MAKE A BACKUP!!!, then change it in notepad++ and save it, then goto the directory it is in in the terminal/command prompt and do (**new line is a new command**) (commands stop at <EOC>)
adb remount
adb push build.prop /system/build.prop
adb shell chmod 644 /system/app/build.prop
adb reboot
<EOC>
METHOD 2: Any DPI Checking/changer app (there might be some good free ones, i.e. pimpmyrom has a density changer (DPI changer) that works the same as mine i think, it changes the DPI value in the Build.prop and it WILL stick over reboots, just not rom flashes (as it overwrites it and my change)
if u want to see how i did this(if u understand java/android applications) u can check This app on my github, its acually fairly easy and lightweight compared to others
https://github.com/kittleapps/MotoActvDPI
and the exact class that does this (using a library), is this
https://github.com/kittleapps/MotoA...om/KittleApps/app/motoactvdpi/MainScreen.java
as u can see it changes it to 90,100, and 120 quite simply (with root access of course)
and sorry for this long message but it explains not only your question, but possible future questions on how this app works =)
Click to expand...
Click to collapse
There is a 3rd method as well.
Method 3 = Install the Xposed framework and app settings apk found here: http://forum.xda-developers.com/showpost.php?p=44034334&postcount=2315
This will allow per app DPI settings rather than one global setting.
In order for this to work correctly, make sure you move both the Xposed Installer and App Settings apks to the phone after installation and reboot as well.
I like running some apps at 120, others at 100, 90, and even 70 w/ modded font sizes and this allows for all those combinations.
Artimis said:
There is a 3rd method as well.
Method 3 = Install the Xposed framework and app settings apk found here: http://forum.xda-developers.com/showpost.php?p=44034334&postcount=2315
This will allow per app DPI settings rather than one global setting.
In order for this to work correctly, make sure you move both the Xposed Installer and App Settings apks to the phone after installation and reboot as well.
I like running some apps at 120, others at 100, 90, and even 70 w/ modded font sizes and this allows for all those combinations.
Click to expand...
Click to collapse
that is true, but i didnt include that cause i was seeing people having issues with xposed-framework on the MOTOACTV on a few threads, and tbh i made this app+inlcuded in modpack before that method was usable for MOTOACTV (or gingerbread in general), thats kinda why i havent updated the modpack in a while (including the fact mine is damaged for some time now), i managed to fix mine up somewhat but it only turns on the backlight and no button combos work but to turn on backlight XD, so no fastboot recovery, boot-to-system, or quickboot :S and since the device is discontinued i cant get a real fix XD, so unless i personally test the things i put in this modpack, i cant make new versions to distribute for device stability reasons (e.g. in case it is corrupted and breaks someone elses device, as it is un-tested, since i dont have a device to test it on)
jkok said:
that is true, but i didnt include that cause i was seeing people having issues with xposed-framework on the MOTOACTV on a few threads, and tbh i made this app+inlcuded in modpack before that method was usable for MOTOACTV (or gingerbread in general), thats kinda why i havent updated the modpack in a while (including the fact mine is damaged for some time now), i managed to fix mine up somewhat but it only turns on the backlight and no button combos work but to turn on backlight XD, so no fastboot recovery, boot-to-system, or quickboot :S and since the device is discontinued i cant get a real fix XD, so unless i personally test the things i put in this modpack, i cant make new versions to distribute for device stability reasons (e.g. in case it is corrupted and breaks someone elses device, as it is un-tested, since i dont have a device to test it on)
Click to expand...
Click to collapse
Sorry to hear that. I personally haven't loaded the mod pack yet. Was looking into cherry picking parts of it when I saw the question on DPI. I thought it was a general question.
In any case, I personally have not had any issues with Xposed on my actv. What issues have you heard about?
jkok - thank you so much for the explanations. It's become more clear for me but I'm not so experienced in android/development so I have some more questions related to dpi on actv.
My practical interest in this is - to investigate the possibility to run igo primo on this device (for route planning/voice navigation) because I'm not happy with Motorola map application (walk/run outdoor mode). I have some ideas how to modify igo's data.zip for specific screen resolutions (at least I managed to make "custom 640x480" data.zip for primo 2.4.0 WM for htc DIAM100) but I need to know what is the "Full Screen" resoluton (for igo and other applications) in different dpi modes on actv (ClearD 1.2.0 rom currently, just in case). Is it the same - 176x220 for all dpi's (I don't think so as the size of icons/fonts/etc are different). So, the real question is - what is the screen resolution I need to set up in data.zip to try to run igo primo on motoactv. To know that I need to understand if dpi change affects the "full screen resolution" in motoactv/android. And, once more, sorry if the question looks stupid (already explained etc) as I'm not developer...
yuiop0 said:
jkok - thank you so much for the explanations. It's become more clear for me but I'm not so experienced in android/development so I have some more questions related to dpi on actv.
My practical interest in this is - to investigate the possibility to run igo primo on this device (for route planning/voice navigation) because I'm not happy with Motorola map application (walk/run outdoor mode). I have some ideas how to modify igo's data.zip for specific screen resolutions (at least I managed to make "custom 640x480" data.zip for primo 2.4.0 WM for htc DIAM100) but I need to know what is the "Full Screen" resoluton (for igo and other applications) in different dpi modes on actv (ClearD 1.2.0 rom currently, just in case). Is it the same - 176x220 for all dpi's (I don't think so as the size of icons/fonts/etc are different). So, the real question is - what is the screen resolution I need to set up in data.zip to try to run igo primo on motoactv. To know that I need to understand if dpi change affects the "full screen resolution" in motoactv/android. And, once more, sorry if the question looks stupid (already explained etc) as I'm not developer...
Click to expand...
Click to collapse
well im not familiar with those apps, as for the resolutions/dpi im not sure of that :S it could possible be found on google, as basic hdpi (240 dpi), usually is around 480*800, and 120 dpi is like the motoactv 220*176, so i guess there isnt a ratio it follows, just sizing of images maybee :S, but i also just became a developer more resently withing the last 2 years so im still learning

[HOW TO] Install GNU/Linux on Samsung Galaxy Note 10.1 2014 (Updated 03/17)

#NOTE: For quick taste go to post#4. That mini-guide -for the time being- only works on Samsung's Kitkat. For Best Performance running Samsung's KitKat is recommended
Also (just so that to be clear), no matter which version of this guide that you are going to follow, you'd need at least 5GB of free Internal Storage.
INTRO
Since the advent of the Microsoft Surface Pro line we had a great "great-computer/mediocre-tablet" combo on one hand, and through the already running iPad line we had a "great-tablet/bad-computer" on the other hand.
One of the primary reasons to buy into the Note tablet line is because I always thought that it conveniently sandwiches itself between the above categories hopefully avoiding the pitfalls of both. Sadly the reality was a bit further than that and our tablet seems to have taken equally the bad and the good of the above lines. I set to ameliorate part of those faults, since I mostly lack coding expertise or indeed deep knowledge of the Linux kernel I created a ... patchy solution.
Sooo the following is a ... rather monumental guide/tutorial to set up Gui - Linux with acceptable performance on top of android in our devices. Since I'm running it "on top" it relies to the chroot method (it's been detailed in quite many posts). For simplicity's (and ... repeatability's) sake I'm using the "LinuxDeploy" app which can be found here (buy a beer to the creator, don't forget that he's practically giving away his software).
Ook, let me say right out of the bat that I could have had released a ready-made Linux image so that everybody could benefit instantly, or alternatively write a script to automate the process that I'm going to detail next.
Instead I decided against it, firstly because (as you will soon find out) this guide is a work in progress, so through exposing each individual step it can/would actually become better (hopefully through the help of more talented/knowledgeable individuals than I). Secondly many of the steps would most certainly break down, down the road (continuously changing software tend to do that to tutorials), yet since all/most steps would be exposed a simple tweak to them would save it...
Important Note: This particular Guide is tested to work on both KitKat and Lollipop (Samsung) Roms for P600. Even a slightly different setup may cause it to misbehave. So that's one more reason why I chose to expose the relevant steps (what/how they do). Hopefully slight tweaks to some of the steps would make Linux perfectly functional on all variants of Note tablet and their many differing roms.
PREPARATIONS
Let me move to the particulars then:
You'd definitely need root and a "Virtual Terminal" enabled kernel (I can't stress this enough), xposed framework/modules is optional (only needed for one work-around). I'm sure a mere Google search can tell you how to achieve the 1st and the 3rd requirement but the CONFIG_VT enabled kernel is a tougher nut to crack. Therefore I'm willing to make a list with VT_Enabled kernels for out tablet, for the time being I'll only be offering kernel based on Samsung Roms (many thanks to @xluco). Non-P600 guys should find an equivalent kernel on their own (or compile one for their own usage).
KitKat: http://forum.xda-developers.com/attachment.php?attachmentid=3686507 , reportedly Disabl0w's version works better
Lollipop: http://forum.xda-developers.com/attachment.php?attachmentid=3686508
Marshmallow: I'm willing to post a VT Enabled kernel here when (and if) our device reach nightly status on CM13.
BEWARE those kernels are for P600 (wifi version of Note 10.1 2014). I take no responsibility if you've bricked your device by flashing it to the wrong device/setup.
Additionally those apps would be needed:
a) Meefik's Busybox v1.24.1 (Download the apk and install it, once installed, do as follows: open the app -> tap "install" in the lower right corner -> OK)
b) LinuxDeploy v1.5.6 (Download the apk and install it, once installed, open the app -> press the "menu" button -> tap "settings" -> tap "update env" -> OK )
c) Linux Deploy's companion app (LinuxCanvas I named it)
d) Privilege Terminal (Terminal Emulator is more feature packed but for the purposes of this guide Privilege Terminal is preferable as you can paste content coming from HTML pages, directly to it)
e) Lastly, certain Configuration Files are needed (download and extract the contents to the root of your internal storage)
THE GUIDE
The guide is really made out of 11 simple steps. You can "blindly" follow them and you'd get a fully working image. Preferably, though, you'd also read the explanations of each step. I've included them because (as mentioned above) this guide is a work in progress. So making you privy to what each step does would hopefully lead to a better guide. Probably one with less steps and even more functionality. The explanation part would also help you debug a step if (for some reason) it didn't work correctly to your device.
So on we go:
1) Copy xorg.conf:
a) Open Privilege Terminal
b) Run:
Code:
su;
cp /data/media/0/Linux/res/xorg.conf /data/data/ru.meefik.linuxdeploy/files/share;
echo"";
Explanation:
The xorg.conf file is basically where input-output devices are mapped. I've modified it to support as many as 8 input devices as well as to support the S-Pen (w right click function!). If you want to add more devices, or for some reason your S-pen does not work and/or you prefer the S-pen button to work as middle click you can modify by navigating to Linux/res/xorg.conf (you can open it with any text editor). To find to which events your devices are mapped you have to run cat /proc/bus/input/devices in Terminal Emulator. From that you could see to which event you can map your S-Pen and/or the rest of your external devices. As it stands I have S-pen as event8 (the default in most roms) and my keyboard and mouse as 10 and 11 respectively (that's how they get mapped in my devices, but they may get mapped differently to yours).
Note: Apart from S-pen everything else doesn't *have to* be mapped precisely (even if your mouse is called "keyboard" it would still work"). Also as a general heads up please connect your devices after device boot as if you have them connected already (say through OTG connection) as the device boots, the handler numbering would be messed up (for example the mouse could be event5 and s-pen event10)
2) Create a Linux image
a) Open Linux Deploy
b) Navigate to properties (Arrow showing "down") and choose the following Configuration:
Use the Default option to all except:
To Distribution Suite: Wheezy
To Installation Path: change the "/storage/emulated" part to "/data/media" (everything else stays as is)
To Select components: Tick X server, untick VNC server
To Graphics subsystem: choose Framebufer
To GUI settings: choose DPI = 230 (or anything higher if it suits you) and untick Force Refresh
To Custom Mounts: Tick it
To Mount Points: Delete the extant mount points (select them -> press "menu" -> delete) and add the following:
/data/media/0
/mnt/media_rw/extSdCard
/mnt/media_rw/UsbDriveA
/mnt/media_rw/UsbDriveB
If you want to add support for more External devices you can add up to 4 more ( /mnt/media_rw/UsbDriveC - /mnt/media_rw/UsbDriveF )
c) Return to Properties' main menu and Tap Install (first selection)
d) Wait (quite a bit) until it reads "<<< install". It should read "processing triggers" on the line just before it, if not, reboot and follow step (c) again (re-install)​Explanation:
I was only able to make Debian and Ubuntu variants work with our device. In principle everything should (and can) work as well, but since I'm mostly accustomed to Debian's eco-system I never bothered to investigate. Similarly (from windows environments) only LXDE and XFCE reliably work (KDE and Gnome technically "work" with Debian too but they're ultra slow). For this instance I chose Debian Wheezy + LXDE due to GUI performance issues mostly, every other disto/window manager causes considerable lag in window placement. I used to use Debbian Jessie + XFCE, love XFCE's features (sessions, Window snap), but the ultra-slow window placement mostly killed the GUI experience that I was after. So I reverted to the less featured but lighter on resources LXDE.
Note: Our tablet's internal SDcard is/would be mounted to /mnt/0 when inside the chroot Linux environment ( similarly External SDcard -> /mnt/extSdCard , 1st external Storage -> /mnt/UsbDriveA , etc ). If you're on another device (not P600) running the command "mount" from Terminal is going to give you where in which paths your storage mounts to, in which case you'd have to change the mount points in LinuxDeploy accordingly.
3) After the linux image is created (Linux deploy says "<<< install") go to Linux's Shell:
a) Go back to Privilege Terminal
b) Run:
Code:
/data/data/ru.meefik.linuxdeploy/files/bin/linuxdeploy shell;
echo"";
Explanation:
It starts the Shell of the freshly installed image
3.5) This step is only relevant to those running Stock Samsung 5.1.1 rom. DO-NOT-RUN it if you're on any other version. Giving root permissions to the default user ("android"):
Run:
Code:
sed -i '/android/c\android:x:0:5000:x:/mnt/0/Linux/Home:/bin/bash' /etc/passwd;
echo"";
Explanation:
Due to complication with SELinux permission (from Android 5 and up most possibly), as a workaround I had to give root permissions to user "Android". See Issue "8" in Post #3 for more information.
4) Change Home folder's path:
Run the following commands:
Code:
usermod android -d /mnt/0/Linux/Home;
rm -rf /mnt/0/Linux/Home;
mkdir /mnt/0/Linux/Home;
cp -a /home/android/. /mnt/0/Linux/Home;
echo"";
Explanation:
Technically this step is optional but I would strongly advice against ignoring it as it allows an 1:1 communication between Android and Linux's user files. By choosing a folder that is visible by android file managers (/Linux/Home) it allows for the user to instantly manipulate the data he/she just created within Linux. For example a document file that is saved on (Linux) Desktop is easily visible by navigating to Linux/Home/Desktop or better yet it's automatically detected by the relevant app (for example a music app would "see" your music Folders, a video app your "Linux videos", etc). Additionally it uses the /sdcard partition which is close to 28GB in size, instead of the 4GB micro-partition that LinuxDeploy created (which is better used by the software that you're going to install there).
5) Apply basic HiDPI fixes:
Run:
Code:
cp /mnt/0/Linux/res/.gtkrc-2.0 /mnt/0/Linux/Home/;
echo"";
Explanation:
It solves basic issues that arise from the HiDPI environment of our devices. Things like CheckBoxes, ScrollBars, even Double Click behavior. The changes are only detectable on GTK2 software. Since all the software I've been using is based on GTK2, it is enough for me. However if you're using a GTK3 based application please by all means recommend of a way to make similar changes to GTK3 applications (I think equivalent -system wide- changes happen when one modifies the /etc/gtk-3.0/settings.ini file). Lastly if the dimensions/changes are not to your taste you can always try different ones by changing their numeric values on Linux/res/.gtkrc-2.0 file (editable by any text editor, beware it's a hidden file) and then rerun this step. What numeric value is controlling what, is rather straightforward due to the naming that it follows. So happy editing!
6) Enable GUI Repaint:
Run:
Code:
chmod +x /mnt/0/Linux/bin/logout;
echo"";
Explanation:
It fully enables the menu button within the LinuxCanvas app (it redraws the environment). I could bundle the script with my "LinuxCanvas" apps, but I wanted to make it modifiable (for example right now it kills the LXsession), but if you were to use a different Window manager you'd probably need to use a different command) and since my app creation powers are very (very!) basic, I simply exposed an internal part of my app. It can be found in "Linux/bin/logout". You can edit it with any text editor (again you'd have to rerun this step after editing is done).
7) Resize Windows Borders:
Run:
Code:
chmod +x /mnt/0/Linux/bin/resizeBorder; chmod +x /mnt/0/Linux/bin/revertBorder; /mnt/0/Linux/bin/resizeBorder;
echo"";
Explanation:
Another Fix needed due to the high DPI of our devices. It basically makes the borders of the windows that much thicker. Since it obviously makes the look of the environment less easy to the eyes I would welcome any work-around. Also you can run
Code:
/mnt/0/Linux/bin/revertBorder
(from within linuxdeploy's shell) to return the Windows borders to their initial size if you're so much bothered about the ... foul look (again I'd advice against it as it'd kill some of the ease of use of window placement/resize). If you want differently sized borders you can always edit the script (found in Linux/bin/resizeBorder) with the text editor of your choice. My current value is 10 pixels you can change it to whatever. Also you don't have to change it for every theme, just the one you're using. Again, I'm open to recommendations (for example what value do you think is better for usability?)
8) Fix Mouse Cursor size:
Run:
Code:
sed -i '/CursorThemeSize/c\iGtk/CursorThemeSize=58' /etc/xdg/lxsession/LXDE/desktop.conf;
echo"";
Explanation:
It makes the Cursor bigger. It doesn't always work. I have to investigate, but I can't be bothered since it rarely (ever) caused me any issues. Still I'd welcome it if someone is willing to investigate and see why it works only some of the times (it probably has to do with boot sequence/times).
9) Install basic Components:
Run the following:
Code:
apt-get update;
sudo -u android sudo apt-get install -y samba gvfs-bin gvfs-backends zip iceweasel xfce4-mixer dmz-cursor-theme gstreamer0.10-alsa;
echo"";
Explanation:
Though the above shell command we add some basic functionality to our Linux installation, like a Samba server (network places for the Windows guys), a browser (Iceweasel is called in Debian) and a virtual keyboard (very important for those using only the S-pen).
10) Exit:
Close Privilege Terminal (press "CLOSE" on the upper right of the app and then "OK")​Explanation:
We're better off to shut down this particular shell instance as it may mess up with the booting of our Linux image later
11) Start Linux:
a) Open "LinuxCanvas"
b) Press Volume Up, wait a bit and voila! (if it doesn't work the first time, press the "menu" button to repaint)​Explanation:
The App is included below this post. This is a veeery basic app (my app-creating prowess is close to zero) which acts as a companion to LinuxDeploy. LinuxDeploy was/is mostly created to fascilitate the XServer/VNC crowd, but the "Framebuffer" crowd has been left a bit in the cold. With as a result the "Framebuffer" functionality of LinuxDeploy to be quite basic (it only creates a black frame and that's it). So I added a bit more than that (it's the super-duper edition ). Orientation is locked, back, Escape buttons blocked (they cause issues). Also:
Volume up -> starts the chroot environment
Volume down -> kills it ("un-chroot")
Menu button -> "redraws" the graphical environment
And that's it. The caveat is of course (as a companion app to LinuxDeploy) that it is heavily dependent to LinuxDeploy, so any change that the developers would choose to make would -predictably- break functionality, so please PM me if/when that will happen. Also I'm a very un-creative person when it comes to App-creation so I would be veeery happy if another user was to take this task from me (someone who -hopefully- would make a much better featured and beautiful companion app), so updating this guide would be the only task that would remain to me.
As you may be able to see, by (as of) now you're good to go and you can fully work on your brand new Desktop environment. However I would like to add some less essential tips/fixes on my second post as well as a list with the remaining issues and workarounds to them (in my third post).
In my first post I described how you can get a relatively well performing Desktop envrironment working on our Samsung Note tablets. This post acts as a companion. Most of the tips here are either completely optional or easy to figure out. Still they may seem useful to many users so I include them here anyhow. As always any recommendations to improve on them or any additional tips would be well considered.
1) DPI Tips and seting up Volume Control :
a) Right click (S-pen button press) on Start menu -> Panel Settings -> Height: 70 and Icon: 70 -> Panel Applets (tab) -> Application Launch Bar (the first one) -> Edit -> Florence (extend Universal Access) -> Add -> Close -> Application Launch Bar (you have to scroll down for this one) -> Edit -> Mixer (extend Sound & Video) -> Add -> Close -> Close
b) LXDE Button -> Preferences -> OpenBox Configuration Manager -> Appearance -> change all to 13-15 (except Active/Inactive on-screen Display: 11-12 ) -> Close
c) File Manager (Black Icon) -> Edit -> Preferences -> Display (Tab) -> Size of Big Icons (96), Size of Small Icons (48), Size of Thumbnails (256), Size of Side Pane Icons (48) -> Close
d) Click the gear looking icon (in the lower-right part of the screen) -> Select Controls... -> Tick Speaker Digital -> Close -> Quit​Explanation:
Those are easy-to-figure but I think essential changes that need to be done so that to make the LXDE enironment more functional on our HiDpi (and often keyboardless) screen. I would be glad to add more HiDPI changes accesible through LXDE's GUI (that you'd think that may be important).
2) If you want Linux's user data to be readable/writable/cacheable by/from your android apps:
Run the following from Privilege Terminal:
Code:
su;
find /data/media/0/Linux/Home -type d -exec chmod 777 {} \;
find /data/media/0/Linux/Home -type f -exec chmod 777 {} \;
echo"";
Note: This step has to be re-run if for whatever reason some of your Linux user-files are -again- not accessible from Android.​Explanation:
While the folder Linux/Home contains all your personal data from Linux it's only accessible from within Linux. That's an obvious security feature, but it may also affect the practicality of running Desktop Linux side by side with Android. By allowing permissions to all "your" files they can be literally read by everyone/everything which also includes your android Apps (for example your edited photos could be "seen" from within your android gallery) which can be extremely useful to many, as well as an easy way to send/save files from Android to Linux, too.
3) In case you want to remove android's mouse cursor (for more experienced users, as inability to follow the steps will -well softbrick your device. BEWARE! )
a) If you're using Windows (if not equivalent steps have to be followed on your mac/linux) unzip the adb folder (included to the bottom of this post) to C:\ and install the samsung drivers (if you haven't already): http://developer.samsung.com/technical-doc/view.do?v=T000000117
b) Reboot your tablet to recovery and connect it to your PC
c) mount /system (from mounts and storage menu or similar). Disable MTP too, if applicable
d) On your PC navigate to C:\adb from command line
e) run:
Code:
adb pull /system/framework/framework-res.apk
f) Navigate to C:\adb, create a copy of framework-res.apk and rename it to framework-res.bak
g) Open the framework-res.apk (the original) with WinRar (or similar) and navigate to res\drawable-sw800dp-xhdpi or res\drawable-xhdpi-v4 and rename pointer_arrow.png to pointer_arrow.bak . Close Winrar
h) Back to the command line run the following
Code:
adb push framework-res.apk /system/framework
adb push framework-res.bak /system/framework
adb shell chmod 0755 /system/framework/framework-res.apk
adb reboot
After having followed the above guide succesfully you can restore the mouse cursor and then kill it again as easily as described below (those commands reboot the device, so beware)
To restore the cursor (after having it killed) in Privilege Terminal run:
Code:
su;
mount -o rw,remount /system; mv /system/framework/framework-res.apk /system/framework/framework-res ; mv /system/framework/framework-res.bak /system/framework/framework-res.apk ; chmod 0755 /system/framework/framework-res.apk; reboot;
echo"";
To kill the cursor (after having it restored) in Privilege Terminal run:
Code:
su;
mount -o rw,remount /system; mv /system/framework/framework-res.apk /system/framework/framework-res.bak ; mv /system/framework/framework-res /system/framework/framework-res.apk; chmod 0755 /system/framework/framework-res.apk; reboot;
echo"";
Explanation:
The above is to kill android's mouse cursor so that when you connect a mouse you won't have two mouse cursors on-screen. It would have been a far less dangerous endeavor if I was to include a flashable zip file doing those changes, but I much prefer to expose the way by which you can kill android's cursor, so that any user would be able to do the same on any other version of android that he or she is willing to run Linux on. Also as a bonus the user is just "one" shell command away from reverting his mouser cursor. Obviously any bricked devices resulted from this method is the user's responsibility and the user's alone (however it's a very recoverable situation)
4) Tips to make browsing easier when you'd want to use the Pen Exclusively:
a) Open the browser (Iceweasel) while in Linux
b) Type on the URL bar -> about:config-> "I'll be careful, I promise"
c) Search for: browser.search.showOneOffButtons . Change its Value from true to false (double click on it)
d) go to: ("hamburger" button ->)preferences -> privacy (tab) -> Iceweasel will: -> Use Custom settings for history -> Untick Remember search and form history
e) Right click on the search bar and untick "show suggestions"
f) Restart Iceweasel​Explanation:
It kills Firefox/Iceweasel's fancy search so typing on the search bar when using pen/virtual keyboard is twice as fast. When I found out about that it completely transformed my usage patters, now I often "quick boot" to Linux if I want to browse to a web-site that android's mobile browser refuse to have rendered. Oh BTW, if you followed the "DPI Tips" (tip No1) the virtual keyboard (florence) can be found to the left of the "start button" (for quick reference).
5) In case you want a multilanguage keyboard:
a) Enter LinuxDeploy's shell by running the following on Privilege Terminal:
Code:
su;
/data/data/ru.meefik.linuxdeploy/files/bin/linuxdeploy shell;
echo"";
b) Run the following command. Where xx your choice of language: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes (only 639-1 codes are applicable)
Code:
echo 'setxkbmap -option grp:ctrl_shift_toggle "us,[B]xx[/B]"' >> /etc/xdg/lxsession/LXDE/autostart
c) when back in Linux/LXDE do the following:
Right click on Start menu -> Add/Remove Panel Items -> Add -> Keyboard Layout Switcher -> Add -> Close​Explanation:
It allows to change keyboard's layouts in both your virtual keyboard (by tapping the flag icon) and physical keyboard (by pressing ctrl+shift). I have not tried any other key combinations other than ctrl+shift so I don't know how well they'll work but you're welcome to try/modify (just replace the ctrl_shift part of the command with any other combination, as you're following the steps).
6) Kernel level changes (Please read the expanation, those changes may well cause instability! BEWARE!):
To achieve those you'd need the Donate version of TricksterMod (much recommended app to own)
Ultra Aggressive OOM Values:
a) You can access them by navigating to General (tab) -> MinFree Control while in Tricker Mod
b) When there please save the default values ( tap on "untitled", then "save" and name it default -> ok )
c) Then proceed to change the values as follows:
Foreground = 384
Visible = 412
Secondary Server = 480
Hidden App = 512
Content Provider= 640
Empty App = 768
d) Again save them as "Aggressive" ( tap on "untitled", then "save" and name it aggressive -> ok )
e) Tap on the tick (that has just showed up) to validate the changes​ Undervolting
a) If your kernel does not support it you won't find it. If it does, you'd find it by choosing the "Specific" tab (MTU Voltages).
b) Similarly as above please save the default values ( tap on "untitled", then "save" and name it default -> ok )
c) Proceed to change the values. I won't include any here as every SoC is different, but typically the greatest clock the greatest undervolt is achievable. As an example I started by lowering my volts by around 100 mvolts in my highest clocks, and progressively less in my lower clocks (for example 1900Mhz was lower by 125 mvolts, 1800Mhz by 100mvolts, etc). You (the user) are the the only one who can find the best volts for your device (low yet stable). If your device starts to get unstable (restarts without notice) you'd have to choose higher volts (you went too low), etc.
d) Try different volt levels (Tap on the tick on each of your attemps)
e) When you found stable enough (hopefully low enough) voltages, save them ( tap on "untitled", then "save" and name it low -> ok )​ As an add-on you can "tell" TrickerMod to boot with the settings you just chose (menu button -> tick on "Kernel Settings"). Else you'd have to manually choose "your profiles" with every reboot.​Explanation:
I struggled very much before deciding to add the above section. I know it may cause instability to many users (the undervolt) and/or significantly lower the capacity of the device to keep apps on system's RAM (due to the high OOM values) but eventually I decided against not including it. The reason is that Linux/Desktop usage can be characteristically RAM and battery hungry. That makes the above tip(s) less of an often uneeded option and more of a necessity, especially to those willing to make heavy use of the Desktop environment. Basically what running a whole OS via chroot means is that you'd need most of the resources of the device. That can only be done by using uncharacteristically high "killing" thresholds.
The OOM values -above- basically mean that the device would kill significantly more background processes than it is expected. In fact I've experimented with many values and the above are the only ones that I've found to (still) be acceptably "low" yet allowing seamless use of the chroot/Linux environment. I could go lower but I start to see hits in performance. Also keep in mind that those values are also dependant on the rom one uses. There are other Roms that "react" better on low ram envrironments than mine. So -obviously- those values are not panacea, but I would be surprised if significantly lower values were not to harm the "Linux experience" no matter the rom.
So -yeah- background processes would be killed left and right. The upside is more RAM for Linux use, less battery leaking from background processes and surprisingly better responsiveness in Android too. In fact that's the other reason why I've kept those values, I've never seen my tablet being as responsive than after adopting those values.Still depending on your usage patterns it may start killing some important background process of yours, in which case I'd advice lowering those values (but not way too much as it would impact Linux performance).
For undervolting (if you can do it) the story is very similar. It may well cause a more unstable system, but it greatly helps with performance and battery life. On Linux there are processes that are characteristically harder to the Processor than most of anything that can be found to a "consumption OS" like Android. This means that the high clocks of our device are used much more frequently, leading to a very much lower battery life, but worse of all overheating which leads to throttling (low performance) and even possibly lowers the SoC's lifespan. Undervolting sets to aleviate those issue. After undervolting my processor I'm getting much better *sustained* performance and while on Linux quite better battery life too, about 30-40 minutes more! I like to say that undervolting is the "overclocking of mobiles", as it achieves the same end-result by aleviating or -even- eliminating throttling, one of the most important causes of low performance on mobiles.
7) Kill multi-window before starting Linux:
Well that's very straight forward, just toggle multiwindow off on quick settings.​
Explanation: Ram (as explained above) is a precious commodity for "serious" Desktop work, so about ~100 MB of RAM is being freed in that way. But most importantly it disallows accidental activation of the multi-window panel which is a quite frustrating experience when it happens while "Desktoping".
This concludes my second post. The following (and final) one is all about the things that still have to be done (where I'd need you -guys- more) and also some work-arounds that I found to those.
With two posts above us, this guide is mostly concluded. Still it may probably be worth the while to read a bit more as in here I include a few workarounds. Which while they're not true solutions in any shape or form, they may make the experience juuust seamless enough...
BUGS/ISSUES
1) No Hardware Acceleration (Biggest)
Explanation:
This is pretty much the elephant in the room. Without a solution to this everything written here is/would be a waste for many guys. Especially those willing to use rendering software, or generally care about media consumption/creation. Unfortunately this is also (by far) the toughest nut to crack. It most probably requires knowledge far greater than my own (even though I must admit that I never seriously considered "solving" this issue). In fact it is here that I could use as much help as possible. If we solve this, suddenly our tablet is viable as a laptop replacement for most uses ... In sort: Solution pending, no workaround in sight, zip, nothing ... it's the Chuck Norris of our problems
2) No ability to redraw (Biggie)
Explanation:
Another big issue. Basically if you lose focus (say press home by mistake) you cannot regain it. Every process continues on the background, of course, your picture is lost forever though, and it's mostly non-recoverable. In the workaround section I have posted the very hacky solution that I'm using (which is no way, shape or form a true solution). This issue's importance is somewhat tempered -though- by the fact that our tablet already operates in a low-Ram environment so putting the chroot/Linux environment to the background for a bit would probably cause a lot of its processes to be eventually killed by Android's ram manager as it would try to regain Ram for the foreground app. Also it's probably easier to solve but -again- it requires knowledge beyond my own. The issue has to do with Android and chroot/Linux "fighting" for the framebuffer's exclusivity. Once Android gains it, it never gives it back (selfish dastard ).
3) Devices cannot be detected "on-the-fly"
Explanation:
A big issue still, but a lesser one than the above two. Again it has to do with the GNU/Linux lacking some kind of daemon constantly "sweeping the place" so that to detect changes. I have not looked deeply in this issue as the workaround has been enough for me. Maybe not that hard of an issue to be solved. Again I'd welcome any recommendation(s).
4) No touch support:
Explanation:
This is a big issue at first glance, I happen to think that it is one of the smallest ones, especially if you think about it: GNU/Linux GUI is/was created for a highly accurate pointing device and the finger(s) is certainly not it. Similarly right click is very hard to be performed by hand (probably via a gesture) with much accuracy. Both of those issues are solved by the pointing device we already own, the s-pen. I find the pen to be faster to a HiDPI Linux environment simply because you make less mistakes with it. Also it supports hovering, so it simulates a mouse pointer on-the-go, much better than a hand. Still touch support would help with typing on the virtual keyboard (it would have been faster due to multi-touch) and scrolling (again multi-touching). It's due to those issues that I include the lack of touch support as an issue. Again I'd welcome it if anyone was to come with (any) ideas regarding (adding) touch support. BTW simply mapping the relevant event on xorg.cong doesn't work, don't know why.
5) Pressing Middle mouse Button returns to Home (thus kills the picture)
Explanation:
It's connected to problem No2. This is more of an annoyance (though) than a true issue as pressing the middle button is not of much use on GNU/Linux's GUI environments. Still I'm using a workaround (posted below) that completely eliminates this issue (sadly it needs xposed).
6) No native way to control brightness (there's probably a solution, never bothered to investigate)
Explanation:
Again mostly an annoyance, as there are alternative ways to control those. A work-around is posted below
7) HiDPI is not well-supported by a lot of Linux's Software.
Explanation:
Depending on your kind of use you may find yourself facing with a software that does not scale well to the ultra-high resolution of our tablets. That would mean veeery small GUI elements and an almost inability to use it. Thankfully most have workarounds (to some it is in-built, to others it requires the installation of some HiDPI theme, to others yet editing config files would do the trick). I regard it less of a problem that it initially seems because by now many/most small laptops are offering a HiDPI screen with as a result forcing most Linux Software maintainers to get by the times and either fix the issue with their particular software, or at least offer a work-around. Obviously I'm not going to post any of those here as the list would be non-exhaustive. If someone wants to create a post (and maintain it) with HiDPI workarounds for many/most of the popular software I'd be glad to link it here (as a work-around)
8) SUDO cannot be be used by regular users on Samsung's Lollipop
Explanation:
Due to changes in SeLinux policy implemented from Android 5 and on permission is denied when a regular use is trying to use the SUDO command
WORKAROUNDS:
To Issue 2) Pressing the menu button. It re-draws the LXSession. The caveat is that you lose all your progress (it's a sort of a "soft-reboot").
To Issue 3) Input devices are detected with a simple redraw (pressing the menu button), but for external storage you have to wait a bit (around 10 seconds after you've connected it) and *then* redraw
To Issue 5) The solution to that is hacky (as it needs xposed) but it works: You'd need Xposed Additions Pro to disable home while on LinuxCanvas App, plus a gesture to get back home (you do that using the gesture navigation plugin)
To Issue 6) You can control brightness through the notification center as you would in any other app.
To Issue 8) Give root permissions to chroot's main user ("android"). Unfortunately that's an obvious security concern and I'm feeling quite uneasy to have to do that. I'd feel much better if this permission issue would be resolved.
FEATURES THAT I HAVEN'T CHECKED:
1) External devices apart from External Storage, Mice and Keyboards.
2) Bluetooth File transfer
3) Cameras
4) GPS
5) IrDA
Explanation:
The above are all tablet functionality that I have not checked.
If I was to venture a guess I would say that they won't work "out of the box", but everyone is free to check. I'm sure there's some workaround to let them work (at least partly), but I had no need of them so I have not investigated further.
INSTEAD OF CONCLUSION:
With the guide concluded I would like to write (instead of a conclusion) the reason that I chose to "run" a desktop environment as above (chroot with the GUI rendered on Android's framebuffer). It's obviously neither the easiest to setup (running the GUI on top of an android-bornt Xserver is far easier to set-up, 3 steps, literally) nor the most efficient (a dual boot setup would be the ideal as far as efficient use of the tablet's resources go).
Well let me "combat" the above arguments one by one. Firstly choosing to use the android's Framebuffer as the renderer: Obviously it's hard to setup at it needs a "Virtual Terminal" enabled kernel (not easy to be found for those who are not into kernel compiling), but, maybe most importantly, it disallows of an easy way to change the resolution (it uses the screen's native resolution) leading to HiDPI issues.
Well, the reason to render on the Framebuffer instead of an Xserver app (like Xserver XSDL) is ... frankly responsiveness. Rendering directly to the framebuffer bypasses all the "lag" caused by the android implementation running beneath. The greatest example is typing responsiveness. Typing on our Note (using a phtsical keyboard), as you may have found out, is a tedious process. There's a very visible latency which causes constant errors when fast typing. This is completely solved by directly rendering on the Framebuffer (hence directly taking input events from kernel events, bypassing Android's stack). For a guy who types a lot, the difference is day and night, it finally turned my Android Tablet into a work horse. Of course the great increase in responsiveness carries over to the rest of the GUI as well.
Let me, then, tackle the second source of scepticism to the solution that I recommended in here. To many a true dual-boot is the holy grail of their idea of how/what an android tablet doubling as a productivity machine is. To me it's not, I've bought an android tablet not because I want a Linux laptop. In fact I already have one. No, I bought it *because of* android and having to "kill" it so that to boot my "productive" environment doesn't really make any sense to me. Sure I can always boot back to Android, but actually most people are not into distinct "productivity" and/or "consuming" modes. In fact most of my usage patterns are all over the place. For example I'm writing something for my paper, but then I want to carefully study another paper, heck I may want to watch a movie in the middle of all this. Sure I can do those two on Linux, but what's the point if I have a far more capable "content consumption" OS lying just beneath? No, my ideal mobile machine is one that produces in the best way possible but one that also lets me consume information in the best way possible.
I bought a tablet *because* I want to consume information much more efficently than what my laptop/PC would had allowed me to. I want to use the "PocketBook" app to read and MxPlayer to watch a movie from my NAS collection, but then I also want to get back to my fully featured IDE. A dual boot absolutely kills the flow (having to constantly reboot). In fact Microsoft's vision in this (Project Continuum) is I think ideal. Still Project Continuum is far from being practical (for the time being) and it may never become, simply because Developers may not support it, so the next best thing is to have my "Productiviy OS" and "Consumption OS" side-by-side in fact that is very much the reason that I've included "step 4" to my guide as well as the "redraw" option. I think it gives flight to the experience (having different "scopes" of experience).
THANKS TO:
Pretty much to everyone from the Android scene that let us enjoy such high quality experience via rooting, kernel modifications, etc. People like @Chainfire, @rovo89 (and many, many others) are indispensable for their services, it goes without saying.
Similarly thanks to everyone from the Open Source community and in particular the Linux Kernel, starting from Linus Torvalds all the way down to the mere user who's recommending a fix. And of course to the guys developing the software running on the Linux kernel (without it, it would have been useless to most).
Also thanks to @xluco for providing a feature-packed (and lately very stable) kernel for me to play with.
Oh and thanks to you guys, hopefully helping to fix (on the longer or shorter run) this mess of a guide. *Any* input would be much appeciated.
OK. CYa. I'm signing off (pheewwww)
Mini-Guide
INTRO
While it kind of saddens me since I've tried (and I think succeeded) to make the guide as simple as possible all the while explaining the steps, the low interest to it lead me to decide to post also post a quick guide (instead of a full guide) that makes no use of shell commands.
There are good news and bad news due to this. The good news is that the guide has contracted further yet its end result really does give a quick taste of well running Linux on our tablet. To sweeten the deal the guide posted in this post gives a quick taste to most devices running a VT (virtual terminal) enabled kernel, no matter the brand and/or Android version.
The bad news is that due to the little interest expressed in here and my extreme lack of time most bugs and annoyances would most probably remain unsolved ... sadly. In no way or shape does that mean that I'm discontinuing support, just that I'll be lukewarm about it and I mostly expect from you / the users to find more workarounds / solutions and hopefully post them here...
Anyway on we go.
PREPARATIONS
Follow the Preparation Section from the First post of this thread. Steps (d) and (e) are not needed, so you can leave those out.
Additionally you'd need to download and place the following two files accordingly:
a) Config Files (you extract the contents to the root directory of your tablet's internal storage, don't change the directory tree)
b) Linux Image (you simply place it to the root directory of the internal storage)
THE "MINI"-GUIDE
For starters make sure that you have followed the "Preparations" Section Exactly. One mistake is enough to make this guide not to work. So without further ado:
1) Open LinuxCanvas and grant it root access (if asked)
2) Create a Linux image
a) Open LinuxDeploy
b) Tap the "Back" Arrow in the upper left corner of the app
c) Delete the extant profile ("Garbage Bin" Icon -> OK)
d) Import the downloaded Profile (3-dot icon -> Import -> OK)
e) Double-tap to the imported profile (its name is "linux")
f) Navigate to properties (Arrow showing "down") and Tap "Install" -> "OK"
g) Be patient. When it's done it will read " >>>install"​3) Start Linux:
a) Go back to "LinuxCanvas"
b) Press Volume Up, wait a bit and voila! (if it doesn't work the first time, press the "menu" button to repaint)​
...and that's it (really). If you want to know what you get by following this guide (instead of the full one), the answer is "basically everything from the first post plus the first step from the second post". Which means that if you want the full deal you *still* have to follow Posts #2 and #3 (workarounds), but of course it's completely up to you.
Again, report any issues, annoyances or even workarounds that you may have found. I'm counting on them to make the guide better.
Cheers!
Great Work Man ....
@Stevethegreat Great Work Man , it's just amazing ... but unfortunately , in Iran , I can't download from the Linux Deploy's Server ... is there anyway I could get the Image to do the Process ( I'm not that lazy ) Or even the ready image to try booting on my SM-P601 ( mybe a better Idea ) ? ... if there's some way , I'll work on the performance a bit ... also , maybe we can get the boot script used in my ARM-UEFI to get it sooner ... Also I have an idea that your ISO size can tell me if it's possible ( Dual Boot , I mean , like what MultiROM does , but much nicer and faster without the Android booted like a single ROM ) ... Great thanks for your effort ...
With Best Wishes
Hitman1376​
I have to wonder if this will work for other Note devices. (for instance I have the note 3)
I'll give it a shot, and the changes I make to obviously match my device, I'll post here.
Thanks for this mate, well done
Sweet. I will try when I have time
Sent from my SM-P600 using Tapatalk
kevp75 said:
I have to wonder if this will work for other Note devices. (for instance I have the note 3)
I'll give it a shot, and the changes I make to obviously match my device, I'll post here.
Thanks for this mate, well done
Click to expand...
Click to collapse
Mate , It needs a Kernel with VT Support , don't forget to have one .... also with " Frame Buff " enabled , it's better .... Good Luck
With Best Wishes
Hitman1376​
kevp75 said:
I have to wonder if this will work for other Note devices. (for instance I have the note 3)
I'll give it a shot, and the changes I make to obviously match my device, I'll post here.
Thanks for this mate, well done
Click to expand...
Click to collapse
It will, most probably without much/any tweaks to the individual steps as Note 3 is very similar hardware wise.
But I have to warn you. Firstly, you'd need a CONFIG_VT enabled kernel. That's fairly easy to get from Note3's kernel guys (it's just an extra option to enable). If they are not willing to provide you with one such kernel, you'd have to wait until I'd find the time to write a guide on how to create one from the sources.
Secondly, you'd have to be much more agressive with your DPI settings as a Note 3 screen is way smaller than our tablet's. Of course you can always opt to work on an external screen, in which case you'd have to be much more restrained with the settings that control the dpi/size of the elements (by contrast).
hitman1376 said:
@Stevethegreat Great Work Man , it's just amazing ... but unfortunately , in Iran , I can't download from the Linux Deploy's Server ... is there anyway I could get the Image to do the Process ( I'm not that lazy ) Or even the ready image to try booting on my SM-P601 ( mybe a better Idea ) ? ... if there's some way , I'll work on the performance a bit ... also , maybe we can get the boot script used in my ARM-UEFI to get it sooner ... Also I have an idea that your ISO size can tell me if it's possible ( Dual Boot , I mean , like what MultiROM does , but much nicer and faster without the Android booted like a single ROM ) ... Great thanks for your effort ...
With Best Wishes
Hitman1376​
Click to expand...
Click to collapse
Hey, LinuxDeploy offers a way to use different servers than the Russian ones. Also you can fiddle with the DNS server options (maybe there's a DNS server in your country/provider that resolves the Russian address).
edit: Oh BTW (to the second part of your past). While I'd welcome anyone at all working on bringing truly native linux (in the form of dual-booting) I'm not too sure of it's usefulness. Still you're free to use parts of my guide towards that goal (if that's what you wish). You can read the final part of my guide ("Instead of Conclusion") to see why I'm not that interested to a true dual-boot.
YYYESSSS!!!!
http://screencloud.net/v/gz6h
I'll let you know how I make out with this! Man, it'd be great to get ubu-touch running on it...
kevp75 said:
YYYESSSS!!!!
http://screencloud.net/v/gz6h
I'll let you know how I make out with this! Man, it'd be great to get ubu-touch running on it...
Click to expand...
Click to collapse
Yeah , that's enough. All it takes now is to see whether my step will work as is. If not I'm sure small tweaks specific to your device will make them work (like changing some of the numeric values in xorg.conf and/or the other files). Keep us posted
Stevethegreat said:
Hey, LinuxDeploy offers a way to use different servers than the Russian ones. Also you can fiddle with the DNS server options (maybe there's a DNS server in your country/provider that resolves the Russian address).
edit: Oh BTW (to the second part of your past). While I'd welcome anyone at all working on bringing truly native linux (in the form of dual-booting) I'm not too sure of it's usefulness. Still you're free to use parts of my guide towards that goal (if that's what you wish). You can read the final part of my guide ("Instead of Conclusion") to see why I'm not that interested to a true dual-boot.
Click to expand...
Click to collapse
Sure ... thank in deed ... I'll take a look but I don't think it's possible cuz the servers were unreachable ( I tried almost all of them )
... God damn those useless guys who do the web infiltration ... why a Linux containing server should get filtrated ? ...
brilliant guide mate theres a new version of my VT enabled kernel here btw http://d-h.st/fr1s
xluco said:
brilliant guide mate theres a new version of my VT enabled kernel here btw http://d-h.st/fr1s
Click to expand...
Click to collapse
Yeah thanks. I made sure to update the OP :good:
Stevethegreat said:
Yeah thanks. I made sure to update the OP :good:
Click to expand...
Click to collapse
Here's the stock 5.1.1 kernel for the P600 with VT enabled, platform.xml fix for external stoarge and chainfire's modified sepolicy for rooting without disabling SELinux.
http://d-h.st/0ImD
Edit: it takes FOREVER to boot, so be patient and ignore the seandroid notice!
xluco said:
Here's the stock 5.1.1 kernel for the P600 with VT enabled, platform.xml fix for external stoarge and chainfire's modified sepolicy for rooting without disabling SELinux.
http://d-h.st/0ImD
Edit: it takes FOREVER to boot, so be patient and ignore the seandroid notice!
Click to expand...
Click to collapse
Thank you very much indeed! I've made some attempts to compile on my own, but it wouldn't boot properly (it would boot into Android and after a while reboot).
I'll now start working on porting my guide. Much appreciated!
So...
Followed to a T
Results: Now have a nice lightweight desktop on my phone
Nice job on the tutorial mate!
Sound problem.
Stevethegreat said:
6) No native way to control sound and/or brightness (there's probably a solution, never bothered to investigate)
Click to expand...
Click to collapse
A possible solution to your sound issue, but it is dependent upon your Linux distribution in use:
Most newer distros of Linux use Pulse Audio for sound. This will not work as you need dbus, udevd, and a few other background processes running which are not functioning properly (or at all) in LinuxDeploy. A work around for this that I have successfully used in the past with LinuxDeploy on a Motorola Flipside was to download ALSA in your Linux distro. In my case it was Debian so I followed these steps:
1. Using the aptitude package manager, I purged all PulseAudio.
2. Using the aptitude package manager, I installed all the alsa tools and libraries.
Be sure to get the Alsa mixer.
3. When I logged in, I could, as root, bring up the alsa mixer in the terminal (eventually I mapped it to a shortcut on the desktop), and once open I could adjust the sound there. Note, you have to turn on an output device in the mixer, such as the SPK_HP or BT_SPK and then set the volume. I usually would start a sound file playing, like music, and then enter into the mixer and adjust to satisfaction.
(NOTE: these are steps, not commands, because your Linux distro or version thereof may differ.)
One problem that I had there before was that the Android system, in an effort to preserve order, would turn off the output device channel I selected after there was no sound coming out of it. E.g. the song ended, then Android would set the SPK_HP back to 0 or mute. SO to avoid that, you need to adjust the permissions of the sound card with chmod and chown to prevent Android from touching it until you are done. You can use LinuxDeploy's start/stop script options to allow you to create scripts to "steal the device" and "give it back" when you start/stop. Or you can simply keep the mixer handy and set the volume/output device every time you play a sound file. I found in practice that I didn't use the sound too much, but your mileage may vary.
-AlaskaLinuxUser
kevp75 said:
So...
Followed to a T
Results: Now have a nice lightweight desktop on my phone
Nice job on the tutorial mate!
Click to expand...
Click to collapse
Glad to hear!
Still there are bugs to be solved, I pray to have them solved (with the help of others hopefully), so keep yourself tuned.
I have to ask though: Is everything working OK? What about the s-pen? Also is the DPI suitable to your phone, or did you have to play with it? (changing the numeric values in some of my files?).
Thanks for trying to out my guide.
Cheers.
is this tested on 5.1.1?

5/1/2017 || V10 (msm 8992) || CPU, GPU, IO, RAM "Tweaks"

So the dev section here has been active recently with some high quality work, and I am looking to add to the fun
**SEE POST 2 FOR CHANGE LOG**
***VERY IMPORTANT IF YOU ARE GOING TO USE THIS MOD, you need to navigate to the /system/etc folder on your device, and rename the file "init.lge.zramswap.sh" to "init.lge.zramswap.sh.bak" so it does not run at boot.
This is a step by step instruction on how to replace the /system/etc/init.qcom.post_boot.sh file for the LG V10. Be it known, however, that this instruction (and file) can be used with any device running the Snapdragon 808 SoC combo.
What does this do?
Simple. It turns your device into an even more efficient powerhouse. Here are is a list of everything done:
-Interactive Governor tuning for performance and better battery life, a quick description of what I did...
-low load, quick response, low frequency
-high load, quick response, higher frequency
-modified input boost settings for Interactive
-Adjusted GPU target load values
-Switched IO scheduler to noop, and tuned accordingly
-Adjusted minfree values (RAM management, it is a little more multi-tasking friendly)
-Adjusted VM parameters - swappiness, dirty ratios, cache pressure, centisec values, etc (again to complement multi-tasking... your data will hang out a little bit more before being written to disk, but house cleaning won't happen all at once, so there is still good performance and your system won't bog down while it is flushing the toilet)
-DISABLED zRAM!!! - I have no idea why a device with 4 GB of RAM has zRAM enabled. This is purely a waste of CPU cycles and other system resources. You want physical memory, not compressed memory.
-Changed congestion algorithm to cubic (better network performance... assuming the network bandwidth is already there
-Cleaned up the shell file and fixed some errors.
-More to come!
How to do this, we'll just get right to it.
Download this app https://play.google.com/store/apps/details?id=jackpal.androidterm&hl=en
Download this file https://drive.google.com/open?id=0BzM9W6qUvx-gcm1SVDhsTDVWZ3M
And while you are here, check this out, decide which one you want.
http://forum.xda-developers.com/showpost.php?p=66792862&postcount=109
Very important you put the file on the root of your INTERNAL SDCARD!!!
Do not forget to do this.
After you do that, open terminal emulator, and type the following commands in the order they are presented (I would highly recommend just copying them from this post and switching back and forth between your browser and the terminal app):
Code:
su
Code:
cd /
Code:
mount -o remount,rw /system
Code:
cd /system/etc
Code:
rm init.qcom.post_boot.sh
Code:
cd /sdcard
Code:
mv init.qcom.post_boot.sh /system/etc
Code:
chmod 0644 /system/etc/init.qcom.post_boot.sh
Double check the file has been replaced with a file explorer of some sort, double check permissions, then reboot. Good to go.
Some of this stuff explained http://forum.xda-developers.com/tmo...nux-virtual-machine-explained-part-1-t3386956
CHANGE LOG***
May 1, 2017
-Pretty major overhaul of the file. I've done some stuff on the Axon 7 that has been pretty effective. Rolling those changes out to other devices. https://drive.google.com/open?id=0BzM9W6qUvx-gcm1SVDhsTDVWZ3M
May 31, 2016
-Replaced corrupted files. Good to go now!
Dangerously version (fixed) https://drive.google.com/open?id=0BzM9W6qUvx-gVHBGWEp3QkpURVE md5sum: a632c866e22114c0e18fa335f005293e
May 25, 2016
Quite a bit of changes here...
-VM completely readjusted. vfs_cache_pressure set back to default 100 to fairly reclaim memory pages that have been allocated to block specific data about file location, etc.. there are tons of write ups on this stuff if you guys want to investigate more into what this setting does, how it works. It's basically a fairness multiplier centered around a value 100. + or - that value increases or decreases the probability that the kernel will reclaim those certain memory pages relative to swap.
-Swappiness reduced drastically... from 80 to 40 (default is 60 depending on which kernel you are running)
-dirty ratio and dirty background ratios reduced drastically to avoid massive amounts of data being flushed and causing system hangups when that ceiling is hit. (lol this happened to me... system ran out of mem... *shrugs* I go hard bros)
-Increased the probably of the system to reclaim memory pages, and made a pretty big adjustment to writeback_centisecs and expire_centisecs
-Changed functional aspects of the interactive governor again - it is perfect. Nominal user experience. Same with touch input_boost. This system definitely has a sweet spot, and I'm pretty sure we've found it now.
-Decided to ditch the laptop mode idea and not mess with the RAM console outputs, the functional loss wasn't returning enough reward. So, here we are.
-Adjusted minfree once more, to
-It is important to note that the system will, admittedly, not multitask quite as aggressively. I had to do this, however, for myself mostly. As I was achieving OOM conditions and hitting the high ceilings set in other parameters like dirty_ratio and when it hits that wall, man it hits hard. Complete lock up for a good 40 seconds while everything is getting dumped from memory. I need a phone with more RAM lol. Didn't think that would ever happen on my mobile set up with 4 GB of it but here we are. I suppose I could re-enable zRAM for myself? But that would hardly help as compression ratios aren't going to yield me an extra gigabyte. Ok now I'm rambling. DOWNLOAD THE FILE!
Very interesting, I'll be trying this in the next hour or so! Thanks for posting.
Edit: Made changes as per the instructions and rebooted successfully. No issues so far, we'll see! Thanks again.
Nice...
Desde V10 (LG-H901)
For all variants? Is it compatible with H961N LP?
Looks promising and wanted to try.
How do I know it worked? I followed the steps
Sent from my LG-H901 using XDA-Developers mobile app
roosxter said:
How do I know it worked? I followed the steps
Sent from my LG-H901 using XDA-Developers mobile app
Click to expand...
Click to collapse
After every line he explains what it does, you would recognize the changes through your usage or maybe non-usage (as far as battery life and RAM management goes)
When I try to move the file it's giving me this error. I have BusyBox and pretty sure it's on read/write access. What am I doing wrong -_-
1|[email protected]:/ # mv init.qcom.post_boot.sh /system/etc
mv: init.qcom.post_boot.sh: remove: Read-only file system
1|[email protected]:/ #
iamtheon said:
When I try to move the file it's giving me this error. I have BusyBox and pretty sure it's on read/write access. What am I doing wrong -_-
1|[email protected]:/ # mv init.qcom.post_boot.sh /system/etc
mv: init.qcom.post_boot.sh: remove: Read-only file system
1|[email protected]:/ #
Click to expand...
Click to collapse
i got problem with the !!!!!!cd /sdcard , writing
i tried cd /storage/emulated/0
and worked for me
11868 said:
i got problem with the !!!!!!cd /sdcard , writing
i tried cd /storage/emulated/0
and worked for me
Click to expand...
Click to collapse
I tried that, but doesn't hurt trying again.
Edit: It worked. I did the same thing lol oh well thanks @11868
Can this be done with the root explorer instead of terminal emulator?
So this can be used on the G4? And does this overwrite settings within the kernel? If I push this file and I don't like the results can I flash a kernel to get rid of the changes?
iamtheon said:
When I try to move the file it's giving me this error. I have BusyBox and pretty sure it's on read/write access. What am I doing wrong -_-
1|[email protected]:/ # mv init.qcom.post_boot.sh /system/etc
mv: init.qcom.post_boot.sh: remove: Read-only file system
1|[email protected]:/ #
Click to expand...
Click to collapse
Your system wasn't mounted as rw when you executed the command
agrenwa said:
Can this be done with the root explorer instead of terminal emulator?
Click to expand...
Click to collapse
It can, yes, I just prefer the old school way. You can manually drop the file in the /etc folder after deleting the previous one. Just need to make sure the permissions are set appropriately.
klbjr said:
So this can be used on the G4? And does this overwrite settings within the kernel? If I push this file and I don't like the results can I flash a kernel to get rid of the changes?
Click to expand...
Click to collapse
Yes, this can be used on the G4 and any other device using the Snapdragon 808. Overwrite settings within the kernel? No, I wouldn't say that. sysfs is more of a userspace / virtual file system that allows you to interact with the hardware... but the parameters we are working with here are completely writable, not permanent, and more important, will reapply AFTER boot. So, no, flashing a kernel will not revert the changes. If you want to go back, you'll need the original file to replace mine with.
Hope this answers your questions.
Since the file is hosted on Dropbox, anyone who has a dropbox account please choose the login option, and transfer the file to your dropbox before downloading it from your own storage to avoid OP's dropbox being blocked for too many downloads in a row.
Good Job OP, nice to see Junior Members doing something great in the dev section
So I did it last night, and so far battery life seems to be much worse than before when nothing has changed but these tweaks. Any idea why? Battery stats is the same for me as usual with the exception of Android System being at 6% and Android OS at 6% use each.
So far so good, not sure what battery usage will be like. I had terrible lag in a game called Underworld Empire and that has disappeared! How badly was the kernel/system coded before?!
Question , how come your file is smaller than the original? Was there a lot of excess code that was useless?
Sent from my debloated rooted LG V10 using Tapatalk
rirozizo said:
Since the file is hosted on Dropbox, anyone who has a dropbox account please choose the login option, and transfer the file to your dropbox before downloading it from your own storage to avoid OP's dropbox being blocked for too many downloads in a row.
Good Job OP, nice to see Junior Members doing something great in the dev section
Click to expand...
Click to collapse
I'll try to upload the file elsewhere, didn't consider that. However, it is a very small file and dropbox might not notice/care. Good observation.
danstheman7 said:
So I did it last night, and so far battery life seems to be much worse than before when nothing has changed but these tweaks. Any idea why? Battery stats is the same for me as usual with the exception of Android System being at 6% and Android OS at 6% use each.
Click to expand...
Click to collapse
Coincidence maybe? Keep monitoring, report back.
Also, bear in mind: rebooting your system causes a little more activity within the OS the first day or so (particularly google services) and it does have an effect on battery drain.
amoot329 said:
So far so good, not sure what battery usage will be like. I had terrible lag in a game called Underworld Empire and that has disappeared! How badly was the kernel/system coded before?!
Question , how come your file is smaller than the original? Was there a lot of excess code that was useless?
Sent from my debloated rooted LG V10 using Tapatalk
Click to expand...
Click to collapse
Yes, it is smaller because I removed everything that was not relevant to the msm8992 SoC. Qualcomm uses common files for just about everything and anything they can - saves them time, hassle and consolidates work somewhat.
Most of the content removed from the stock file is for other platforms not relevant for us.
warBeard_actual said:
I'll try to upload the file elsewhere, didn't consider that. However, it is a very small file and dropbox might not notice/care. Good observation.
Click to expand...
Click to collapse
I recommend Google Drive or Box
@warBeard_actual
Great job buddy on this.... @freeza mad af!
To everyone else I've been using this for a while and am happy to report my buddy warBeard_actual has been killing it!
bencze, proof or it didn't happen

Categories

Resources