[ROM/ROOT/CWM] Sero 7 Pro (US) - dopa v2.0 - Android Software Development

** DoPa5 v1.0 (AOSP v5.0.2_r1 - Lollipop) is now available for US/UK/AU users **
If you would like to upgrade from the stock ROM, see this post for downloads and installation details
Click to expand...
Click to collapse
DoPa v2.0 is an enhanced version of the stock ROM that features a custom-built kernel. It is based on Hisense's August, 2013 update (build P756.6.02.20) and is intended for US (8gb) versions of this tablet. It does not support the 32gb models sold in the UK and Australia. See Post 2 below for packages to root this tablet and install CWM Touch recovery.
This ROM de-bloats the original, roots it using SuperSU, and adds several useful apps, among them: Apex Launcher and ES File Explorer. It also includes several Xposed Installer modules to tweak your system, including GravityBox and my Phab7 UI switcher. For the hackers amongst us, ADB always runs as root.
The kernel is built from Hisense's source and offers enhancements and bug fixes. Most notably, it provides USB-OTG support so you can connect USB storage devices (e.g. thumb-drives) to your tablet using an OTG cable. It comes in two flavors, a non-overclocked version included in the main package, and a separate overclocked version that can be installed (and uninstalled) independently.
Installation
Having CWM installed is a prerequisite; if you haven't installed it yet, see Post 2. This ROM is intended to function as an update, preserving your apps and data. Unless you want to start from scratch, do NOT wipe or clear anything - the install script will do what's needed.
copy the file(s) to your internal or external SD card
reboot into CWM, then select "install zip"
I recommend you select "toggle signature verification"; enabling this will confirm the file hasn't gotten corrupted (if you get a verification error, stop, then copy the file to a different SD card)
choose the menu entry corresponding to where you put the file(s), then select "sero7pro-bld60220-dopa-v2.0.zip" from the list
after confirming your selection, the update will display what it's doing; you should NOT see any error messages
if you'd like to install the overclocked kernel, you can do so once the main package is in place, or at some later time
reboot
Notes
when you attach a drive using the USB-OTG feature, it is automatically mounted at '/usbdisk'. Be aware there is no easy way to unmount it - you may have to use adb or a terminal app to ensure a clean unmount. This should only be an issue if you write to the disk; if you're only reading, it may be safe to just pull the plug.
the overclocked version of the kernel runs the processor at 1.5ghz rather than the standard 1.3ghz. Using it may result in a significant loss of stability on some systems. You may want to install one of the many apps that let you control the maximum speed to regain stability and reduce power consumption.
much of the app-bloat this ROM tries to eliminate (such as Sams Club or Playstore Magazines) may still be present if you've ever gotten updates for any of these apps. To get rid of them permanently, uninstall them using Settings->Apps->Downloaded. For "system" apps like the Google stuff, select "Uninstall updates", then "OK" when it asks if you want to revert to the factory-installed version (which doesn't exist anymore). The apps will be gone for good.
to enable the many tweaks offered by GravityBox and Phab7, open the Xposed Installer app and enable it via the "Framework" option but don't reboot yet. Back out and choose "Modules", then tap directly on the checkbox to the left of each module's icon (not on the icon or text). Now, reboot to activate their features.
Note: GravityBox's Quick Settings tiles and statusbar mods only work with the Phone or Phablet UIs (i.e. not Tablet UI). To get the full effect from Tablet UI, open Apex Launcher's settings and select "Homescreen settings->Use tablet UI mode"
Geek Alert: with the addition of DriveDroid (not included), this kernel lets your tablet emulate a USB CD drive that can be used to boot your PC. See the app's description for details.
Credits
xboxexpert - for getting things going
randomblame - for many of the patches used in this kernel
Files
new and improved:
sero7pro-bld60220-dopa-v2.0.zip - the DoPa v2.0 ROM with the standard kernel
sero7pro-boot-dopa0oc-v2.0.zip - the overclocked kernel
sero7pro-boot-dopa0-v2.0.zip - the standard kernel (in case you want to reinstall it)
old and tired: (do not use with v2.0)
sero7pro-bld60220-dopa-v1.1.zip - the DoPa v1.1 ROM
sero7pro-usbotg-dopa-v1.1.zip - USB-OTG add-on
sero7pro-macfix-dopa-v1.1.zip - random MAC address fix
sero7pro-sysui-dopa-v1.1.zip - removes screenshot button
miscellaneous:
sero7pro-bld60220-removed.zip - files that were removed from the DoPa ROMS (note: unlike the other files here, this is not a flashable zip. Unzip it, copy the apps you want to your SD card, then install them from there)
stock-v60220-full-update.zip - the complete 6.02.20 update from Hisense - this is the closest you'll get to the original stock ROM
GPL Notice: the source code for this kernel is available at https://github.com/dolorespark/android_kernel_hisense_m470bsa on the 'master' branch.
DoPa
XDA:DevDB Information
Sero 7 Pro (US) - DoPa v2.0 Modified Stock ROM, ROM for the Android General
Contributors
dolorespark
ROM OS Version: 4.2.x Jelly Bean
ROM Kernel: Linux 3.1.x
Based On: Stock ROM
Version Information
Status: No Longer Updated
Current Stable Version: 2.0
Stable Release Date: 2014-01-22
Created 2015-01-26
Last Updated 2015-01-27

Root/CWM packages
These packages will root and install CWM Touch recovery on the US (8gb) model of the Sero 7 Pro. There are separate versions for Windows and Linux. They have been tested under Win XP, Win 8, and Ubuntu, and should avoid problems encountered with other root/recovery packages.
The packages are modular so that you can run some or all of the functions as-needed. They consist of 4 scripts:
step0-DoItAll - displays some setup info then runs all 3 of the following
step1-adb - enables ADB ("Android Debug Bridge") to locate the tablet
step2-root - roots the tablet and installs the SuperSU app
step3-cwm - installs CWM Touch Recovery v6.0.3.2
Versions of ADB for each OS are included, so no other packages or downloads are needed. Usage should be fairly simple: unzip the package into a convenient directory, doubleclick on step0-DoItAll, then follow the (minimal) instructions. Alternately (and better), open a command prompt/bash shell, change to the directory where you unzipped everything, then run the script(s) from there.
Avoiding Frustration
If you haven't rooted an Android device before, please read the following because there are a few "gotcha"s. If you have but things aren't going as expected, review the following in case you missed/forgot something.
Developer options must be visible in the Settings app. If they aren't, select "About tablet", then tap on "Build number" 7 times. A small popup will tell you that you're now a developer. Back out to the list of settings categories - you should now see "Developer options".
USB debugging must be enabled under "Developer options". Please be sure it is. If it isn't, select it then tap OK when a warning popup appears.
Both Windows and Linux require extra files to be in place before ADB can communicate with your tablet. Click on the button for your OS to see the ugly details.
Windows
Windows requires USB drivers to be installed. Drivers that will work with the Sero7Pro (and possibly any Android device) are included in the package.
After enabling "USB debugging" and connecting your tablet, a wizard may pop up to guide you through the steps. If not, force it to appear by opening Device Manager. Look under "Other devices" where you should see something like "Android phone". Doubleclick on it, then select the "Install driver" button on the window that appears.
When the wizard pops up, tell it you'll select the drivers, then choose the option that tells it where to look. Click the "Browse" button and navigate to the directory where you unzipped the package. Select the usb_driver folder, press "OK", then "Next" - the drivers should install without any problems.
Notes: On Windows XP, the first wizard to pop up may want to install drivers for "MTP" which XP doesn't support. If so, cancel out of that, then wait for the "Andoid Phone" wizard to appear. On later versions of Windows, you may get a popup warning that the drivers aren't signed properly; if so, select "Install driver anyway". On Win 8-64bit, driver installation will fail unless you started the current session with "Driver signature enforcement" disabled.
Linux
Linux (or at least Ubuntu) doesn't allow user programs to access USB devices directly without the appropriate permissions in place. This package includes a file named 99-android.rules which provides those permissions
If you've never provided access to other USB devices, just copy the file to /etc/udev/rules.d. Otherwise, you can either copy it or merge its contents with the .rules file containing your other USB entries.
Note: both the rules.d directory and its contents are owned by root. You will probably have to use the sudo command to gain access. For example, from a bash shell whose current directory is the one where you unzipped the package, you'd enter "sudo cp 99-android.rules /etc/udev/rules.d". Also, be sure the file's permissions match the others in that directory. If not, run "chmod 644 /etc/udev/rules.d/99-android.rules".
Notes
When you're done, open the SuperSU app to enable it. It will ask to update the su binary. After selecting OK, the app will be enabled and will popup warnings whenever an app requests root access for the first time.
The Linux script is actually designed for both Linux and Mac OS X. However, I haven't fully tested it yet so I don't want to make any incorrect claims of support. You may have to correct some file permissions and will almost certainly have to run it from the Terminal app.
Files
sero7pro-root-win-dopa.zip - Windows
sero7pro-root-unix-dopa.zip - Linux

[Obsolete] Remove Screenshot Button / Add Instant UI Switcher
The mod originally described in this posting is now obsolete with the release of the DoPa v2.0 ROM which has both features built in.
If you are running an older version of that ROM, or XBoxExpert's ROM, or even the stock ROM, you can still remove the screenshot button using this CWM-installable package: sero7pro-sysui-dopa-v1.1.zip.
If you'd like to try Phab7, an on-the-fly UI switcher that lets you select Phone, Phablet, or Tablet UI modes, see this thread. Note: you must install the SystemUI mod to switch to Phone UI - without it, SystemUI will force-close when you do.

Good work. Hope to see more devs and more Roms

Really good. I'm using it right now. Keep going with the good work

Good Job! Looking forward to more posts!

Thanks for the nice work and good instructions. I'm using your stock ((build P756.6.02.20) rooted now and plan to try the ROM soon without Link2SD operational to keep all my apps.

Thanks again, I have updated my Sero to this ROM. Everything seems to be working perfectly. I look forward to many updates!

Thank you. Your ROM runs smooth and fast.

Great work man, downloading it now! Thanks!

Antutu result for this ROM
12979 is my antutu result for this ROM while my previous stock ROM result was 11948 while 12339 was result of XE ROM. Thank you!

Installed and working. Thanks.

taba4real said:
12979 is my antutu result for this ROM while my previous stock ROM result was 11948 while 12339 was result of XE ROM. Thank you!
Click to expand...
Click to collapse
I'm getting 13861 on this ROM, 11249 on the previous XE ROM.
Ran it twice, results were very close. I did leave all the 'tweeks' in from Xbox's post, not sure if that makes any difference.
Larry
Sent from my Nexus 7 using xda app-developers app

larryf said:
I'm getting 13861 on this ROM, 11249 on the previous XE ROM.
Ran it twice, results were very close. I did leave all the 'tweeks' in from Xbox's post, not sure if that makes any difference.
Larry
Sent from my Nexus 7 using xda app-developers app
Click to expand...
Click to collapse
Why am I getting 10500 on this ROM then?

Does this root and cwm change kernel like xbox's?

lordroy said:
Why am I getting 10500 on this ROM then?
Click to expand...
Click to collapse
Did you run it with the raw system? What I mean, is did you run it after the ROM settled out and after a few reboots or did you flash and then run the benchmark? It is probably over kill but I like to let the ROM sit for awhile and then do a couple of reboots before I run bench marks. My first score was very close to larryf's score (13,800) the first time I ran it, but after I added live wallpaper, Nova launcher, Xposed, etc. my last score was 11395. I assume any benchmark program would shutdown all non essential programs before running but that may not be the case.
EDIT: Wow, I rebooted right after I type this and ran AnTuTu again and it scored 14,425.
https://www.dropbox.com/s/kmwd7jgjpcw233y/Screenshot_2013-10-07-22-38-57.png

Cooter007 said:
Did you run it with the raw system? What I mean, is did you run it after the ROM settled out and after a few reboots or did you flash and then run the benchmark? It is probably over kill but I like to let the ROM sit for awhile and then do a couple of reboots before I run bench marks. My first score was very close to larryf's score (13,800) the first time I ran it, but after I added live wallpaper, Nova launcher, Xposed, etc. my last score was 11395. I assume any benchmark program would shutdown all non essential programs before running but that may not be the case.
EDIT: Wow, I rebooted right after I type this and ran AnTuTu again and it scored 14,425.
https://www.dropbox.com/s/kmwd7jgjpcw233y/Screenshot_2013-10-07-22-38-57.png
Click to expand...
Click to collapse
I flashed it days ago with this ROM, lots of reboots etc. Not sure what I am doing wrong or why my score is so low.

lordroy said:
I flashed it days ago with this ROM, lots of reboots etc. Not sure what I am doing wrong or why my score is so low.
Click to expand...
Click to collapse
It may have something to do with my minimal approach to this tablet. I bought this tablet to use in the car. After setting up Nova Launcher, I'm pretty much down to two addition; ODB2 and CoPolit.
My HomeScreen ----- https://www.dropbox.com/s/rsdp9oskbhtg9jp/Screenshot_2013-10-07-23-05-38.png

Cooter007 said:
It may have something to do with my minimal approach to this tablet. I bought this tablet to use in the car. After setting up Nova Launcher, I'm pretty much down to two addition; ODB2 and CoPolit.
My desktop ----- https://www.dropbox.com/s/rsdp9oskbhtg9jp/Screenshot_2013-10-07-23-05-38.png
Click to expand...
Click to collapse
Of course as soon as I mention something, my Sero decides to play nice.
Just got a score of 13861. I didnt change anything, it just decided to score better for some reason.

lordroy said:
Why am I getting 10500 on this ROM then?
Click to expand...
Click to collapse
Sir i used to get this with Power Saving mode instead of Perfromance priority mode....... =):good:

Related

[Q] Running CM7.2 (MiRaGe-KANG build) - How do you know V6 is working? Wi-Fi Question

Hi All,
I'm new here but have been reading the threads since I got a Nook Color last month.
I'm booting from a 16GB microSD card: [CM7.2-RC0] MiRaGe - KANG build of CyanogenMod ("encore_CM72-MiRaGe-12122011") and also installed "gapps-gb-20110828-signed"
I ran the Battery Calibration tool just yesterday when it was plugged in and at 100%
I installed the Nook Color USB Mass Storage utility so that I could access the SD card from my computer
I also followed the thread's advice on installing V6 Supercharger (http://forum.xda-developers.com/showthread.php?t=1344873):
Nook Color with its large kernel with many features consumes the RAM rapidly and low memory becomes an issue where V6 Supercharger becomes useful.
Here is how I install, it takes only one minute.
- Download update 8 to sdcard root directory.
- Start Terminal Emulator and do the followings
- su
- cd /sdcard
- sh V6*
- choose option 0 (fastest scroll)
- choose 9
- choose option 16 to reboot ​
I have a couple questions that I can't ask in the dev threads since I just registered here.
How do you check if V6 Supercharger is working? I didn't install BusyBox or Script Manager like the original V6 Supercharger thread suggested...so is there a way to do this through the Terminal Emulator?
What do you recommend overclocking your CPU settings in CyanogenMod settings to? I have mine currently set to Conservative, Min: 300 MHz, Max: 1100 MHz, and Set on boot. Would 1200 MHz be pushing it too much?
I've read some questions and threads on here regarding the Wi-Fi turning off when it goes to sleep. When you press the side power button to turn off the screen, is that also putting the device to sleep? Is there a solution to the problem of the Wi-Fi turning off on its own when the screen is off?
Thanks in advance to any advice or answers! And of course, if you have any suggestions on other things I should be installing/uninstalling I'd greatly appreciate it!
AngelWings8 said:
I have a couple questions that I can't ask in the dev threads since I just registered here.
How do you check if V6 Supercharger is working? I didn't install BusyBox or Script Manager like the original V6 Supercharger thread suggested...so is there a way to do this through the Terminal Emulator?
What do you recommend overclocking your CPU settings in CyanogenMod settings to? I have mine currently set to Conservative, Min: 300 MHz, Max: 1100 MHz, and Set on boot. Would 1200 MHz be pushing it too much?
I've read some questions and threads on here regarding the Wi-Fi turning off when it goes to sleep. When you press the side power button to turn off the screen, is that also putting the device to sleep? Is there a solution to the problem of the Wi-Fi turning off on its own when the screen is off?
Click to expand...
Click to collapse
1. Open your app drawer, flick the screen, if it scrolls instead of stuttering then V6 is working.
2. OC as much or as little as you want. 1200 is safe but some people say that the increased battery drain isn't worth the slight increase in speed. You have to decide for yourself.
3. Yes, that is putting the device to sleep, yes, that will turn off your wifi. Most people prefer sleep to just screen off because it saves your battery. The old CM7.0.3 and earlier didn't have sleep mode and you lost 1-3% of battery per hour of standby. If you're ok with that then:
wireless & network settings > wi-fi settings > menu > advanced > wi-fi sleep policy>never
Thanks a bunch! I was wondering why there wasn't an "Advanced" option when I went to Wi-Fi settings...didn't even think to press the menu button! I chose to set the sleep policy to "Never when plugged in" and we'll see if that works for me. Is the default "When screen turns off"?
yup, it's been the default on every android device i've used. It allows you to put your device to sleep and then turn it back on when you need it without having to wait for android to boot. I can tell when an app kept my nook from sleeping because my battery is dead.
I installed the Nook Color USB Mass Storage utility so that I could access the SD card from my computer
Click to expand...
Click to collapse
I don't think you (we) need this step since I believe the feature has been integrated into the latest CM7 builds, assuming MiRaGe the same.
1. Open your app drawer, flick the screen, if it scrolls instead of stuttering then V6 is working.
Click to expand...
Click to collapse
Without even installing V6 Supercharger, I don't believe that I ever experience the stuttering. If that's the case, how do I know the V6 script is working/running/better performance?
votinh said:
Without even installing V6 Supercharger, I don't believe that I ever experience the stuttering. If that's the case, how do I know the V6 script is working/running/better performance?
Click to expand...
Click to collapse
You can tell it's installed Ok by running it again and using option 1 to show the status.
Not so easy to tell its immediate benefit as its real job is trying to ensure that the memory is kept free, so you have to compare operation over time as more apps get used / loaded.
You know, I'm not sure if I ever experienced the stuttering either. I'll have to check later today.
If I just used the Terminal Emulator, would I essentially do these steps?
- su
- cd /sdcard
- sh V6*
- choose option 0 (fastest scroll)
- choose 1 (to show status)
- choose option 16 to reboot
Also, just want to confirm that you need to keep the V6 file in the sdcard root directory right? I'm assuming if you ever delete or move the V6 file, V6 Supercharger would stop working?
By definition, "root directory" of the bootable CM7 uSD card is the one that has 117MB where ROM/GApp zip files used to be. If that, I don't believe that we (or NC) can access that partition. If it does, I want to know too.
With CM7 runs off eMMC, root directory of "normal" uSD card is ......... ehh, not in any sub-folder.
Can someone who actually do run V6 script chip in for some info?
Big thanks
Oh I'm sorry, when I wrote "sdcard root directory", I mean the root directory of what you can access when you plug it in via USB and not the partition where you're booting CM7 from. It's essentially where I save all my folders of wallpapers/music/videos/etc.
AngelWings8 said:
Oh I'm sorry, when I wrote "sdcard root directory", I mean the root directory of what you can access when you plug it in via USB and not the partition where you're booting CM7 from. It's essentially where I save all my folders of wallpapers/music/videos/etc.
Click to expand...
Click to collapse
Oh, ok.
Did you run the script yet? How was it?
No offense to the person that suggested checking V6 by flicking the app drawer, but there are a couple more reliable options.
I am no expert, by any means, but from looking over the program, it looks like all it really does is prioritize your apps by whether they are foreground or back, a launcher or hidden and so on, then allocate memory to the apps following that priority. I think any response check would wholly depend on how many apps you have running (or being killed by the V6 task killer)
Either way, even if it turns out that I wholly misunderstood the program, I can tell you how to see if it is installed and running for sure.
This will work if you have already installed the V6 or not. the following are directions for terminals, if you are running the dev's Scripter app, I would imagine it is similar, if not automatic.
Open a terminal.
su
cd sdcard/
sh V6*
the menu then scrolls. option 0 is often recommended here, but that is just a value for the scrolling speed of theV6 script itself. you can increase this number if you errant to spend a little time looking over what you're running.
f you think you have already ran the V6 look below the 17 options to current minfrees. If you want option 9 (Mirage Kang's recommendation) the current minfrees should read 6, 12, 75,100,125,150 mb. if it does, then you are supercharged. if not, go ahead and select option 9.
Now before you reboot, I would recommend that you run option 15 if you are not using Scripter. that will run V6 through the terminal emulator. That way, should you ever want to check your values or mess with the options, you can open terminal, su, then bash V6, and it will run.
Even if you don't think you will ever want to readjust the supercharger again, it had the added benefit of yelling you your "installation was INCREDIBLY SUCCESSFUL" which is bound to make you feel supercharged.
Run option 16 to reboot and now you can feel secure, without relying on a subjective flick of the app drawer.
Thanks everyone! I'm going to try uninstalling the USB Mass Storage app I downloaded then, if I don't actually need it with the CM7.2 version.
I did run Terminal Emulator to see what the minfrees were and it was the same as option 9. I didn't even think of running option 15, but I've done so now. After I rebooted, I opened up the Terminal Emulator again and typed "su" and then "bash V6" and it says "bash: V6: No such file or directory". Am I doing something incredibly stupid or wrong?
Also, do I have to leave the V6 txt file on the sdcard or can you delete it after you've run it?
I would bet it was a problem with case. bash v6 and bash V6 are two different things. Capital V should fix the issue.
Save the txt file, it is the actual script that is being ran. Without it, nothing happens.
I used bash V6 (and tried bash v6 just to see if anything would happen) and I got the same message. I thought maybe I just didn't do it right first time around, so I went back in, checked the minfrees and entered option 15 and then 16 to reboot, but when it did, it booted to the stock Nook Color OS. I just shut down and turned it back on and it went into Cyanogenmod with no problem...but is that strange that it didn't boot into CM? And once I got into CM again, I checked the overclock settings and it was back down to 800 GHz (even though I set it on boot at 1200 GHz).
votinh said:
By definition, "root directory" of the bootable CM7 uSD card is the one that has 117MB where ROM/GApp zip files used to be. If that, I don't believe that we (or NC) can access that partition. If it does, I want to know too.
With CM7 runs off eMMC, root directory of "normal" uSD card is ......... ehh, not in any sub-folder.
Can someone who actually do run V6 script chip in for some info?
Big thanks
Click to expand...
Click to collapse
That's a partition, not a directory. Every partition has a separate root directory.
With emmc, it's simpler because there's only one partition on the sd card so there's only one root directory. You can copy it over using usb or a sd card reader and it'll end up in the same place.
If you are running off the uSD, transferring files via USB places them on the "SDcard" partition on the uSD. That way, CF3D can find the files.
**I have a ton of apps, which may be the cause of my app drawer stuttering on flick (where you try to swipe to the bottom of your app list in one flick).
Thanks for all the useful replies! I uninstalled Nook Color USB Mass Storage app, and it seems to be working fine!
I saw that there is a new build for [CM7.2-RC0] MiRaGe - KANG and was wondering if you guys could kind of walk me through doing my first update. I downloaded both of these files listed in his first post:
- ROM - 01132012 build: MD5sum: 41676325569e773340378ba886dd6bf6
- transparency theme with circular battery indicator for 01132012 build. MD5sum: 9fb6a03e91f01c162a2f8f37cfe8ac77 Flash this theme after booting once with the new ROM. Do not use this theme with earlier or later builds.​
For installation, it says "Just follow the official CM7.1 installation via recovery guide (stable or nightly). The removed components will be retained on your NC from the previous ROM if you do not uninstall those (Titanium recommended) or do a clean wipe."
I do have Titanium and I backed up using the "all user apps and system data" option. Is that adequate or is there a different option I should be using? Also, since he mentions that the removed components will be retained on the NC if you don't uninstall those...how do you know which ones and how do you go about uninstalling those? I never actually used the uNooter or ROM Manager...so I'm trying to figure out how to make it work with the method I used the first time around (VeryGreen's: http://forum.xda-developers.com/showthread.php?t=1000957) What I've done is just renamed "encore_CM72-MiRaGe-01132012" with "update-" in the beginning, put it on the boot partition, and rebooted into recovery.
wrong button click, LOL
Anyway, that should be it.
Yeah, my NC seems to be working fine after just renaming it to "update-" in the beginning of the files and booting it into recovery, but the transparent battery indicator theme didn't seem to do anything
Also, this is a random question, but do your NCs' volume rocker thing seem kind of loose? I was just wondering if that's normal because mine you can move left and right (you can kind of wiggle the button itself).
AngelWings8 said:
Yeah, my NC seems to be working fine after just renaming it to "update-" in the beginning of the files and booting it into recovery, but the transparent battery indicator theme didn't seem to do anything
Also, this is a random question, but do your NCs' volume rocker thing seem kind of loose? I was just wondering if that's normal because mine you can move left and right (you can kind of wiggle the button itself).
Click to expand...
Click to collapse
My volume button does that too.
Oh good, I was hoping it wasn't some sort of issue with the button being broken or something.
Also, I asked this earlier, but could someone explain to me what to do since after updating a new [CM7.2-RC0] MiRaGe - KANG build, he says "The removed components will be retained on your NC from the previous ROM if you do not uninstall those (Titanium recommended) or do a clean wipe. If you don't need a clean wipe, i.e. current ROM is CM7.1, instead of step 5 in the guide, do wipe dalvik-cache only."
Is that what I should be doing? How do I go about it using VeryGreen's method (without using ROM Manager or ClockworkMod Recovery?)
I'm sorry if I just sound like a complete noob, but I'm trying to learn!

[UPDATED][INFO] ROM 101 + CWM Errors Solutions

Parts of a ROM
i. The kernel.
Android (like many other Smartphone operating systems) runs on the Linux kernel. The Linux kernel was created in the early 1990’s by a gentleman named Linus Torvalds in Helsinki, Finland. It’s incredibly stable, incredibly friendly, and incredibly difficult for the layman to understand and modify. Thankfully it’s also very popular so it has been ported on to a multitude of hardware, including our Android devices.
Think of the kernel as an interface layer between the hardware and software on your device. The kernel decides when things happen, such as the LED indicator gets lit or when the soft button's LED gets lit. An application sends a request to the operating system to blink the LED. The operating system then sends the request to the kernel, which makes the light flash for the amount of time requested by the OS.
What sounds like a round-about way to get things done is also what makes the system so scalable and robust. Application developers only have to code in a way the operating system understands and the kernel makes it work on the hardware. This also keeps the application running in it’s own user-space and separate from the kernel. That means when you run the latest uber-cool app that wasn’t designed for your particular OS version, or is still very beta and it crashes, the kernel gives you the option to Force Close the application and the kernel can run untouched.
In a standard Android ROM (we will leave developer images and the like for another discussion) the kernel is bundled along with a set of instructions that tell the device how to load the kernel and the OS during boot. This is the boot.img that you see inside a zipped ROM that your not able to easily open. The device knows to extract this image to internal memory (the ramdisk) and follow a series of scripts (init scripts) to load the kernel and then the other portions of the OS. That’s what’s happening while you’re watching the boot animation. Interestingly enough this is done the same way for a PC, your smartphone, an Android tablet, or even a smart Linux powered toaster. If you’re feeling exceptionally geeky, plug your Android phone into the USB port on your PC and let the PC boot from the USB device. No, it doesn’t actually load, but you can watch the animation while it tries to match up the hardware support with what’s inside your PC. As I said, Linux is amazingly scalable and as a result so is Android.
What is a kernel? If you spend any time reading Android forums, blogs, how-to posts or online discussion you'll soon hear people talking about the kernel. A kernel isn't something unique to Android -- iOS and MacOS have one, Windows has one, BlackBerry's QNX has one, in fact all high level operating systems have one. The one we're interested in is Linux, as it's the one Android uses. Let's try to break down what it is and what it does.
Android devices use the Linux kernel, but it's not the exact same kernel other Linux-based operating systems use. There's a lot of Android specific code built in, and Google's Android kernel maintainers have their work cut out for them. OEMs have to contribute as well, because they need to develop hardware drivers for the parts they're using for the kernel version they're using. This is why it takes a while for independent Android developers and hackers to port new versions to older devices and get everything working. Drivers written to work with the Gingerbread kernel on a phone won't necessarily work with the Ice Cream Sandwich kernel. And that's important, because one of the kernel's main functions is to control the hardware. It's a whole lot of source code, with more options while building it than you can imagine, but in the end it's just the intermediary between the hardware and the software.
When software needs the hardware to do anything, it sends a request to the kernel. And when we say anything, we mean anything. From the brightness of the screen, to the volume level, to initiating a call through the radio, even what's drawn on the display is ultimately controlled by the kernel. For example -- when you tap the search button on your phone, you tell the software to open the search application. What happens is that you touched a certain point on the digitizer, which tells the software that you've touched the screen at those coordinates. The software knows that when that particular spot is touched, the search dialog is supposed to open. The kernel is what tells the digitizer to look (or listen, events are "listened" for) for touches, helps figure out where you touched, and tells the system you touched it. In turn, when the system receives a touch event at a specific point from the kernel (through the driver) it knows what to draw on your screen. Both the hardware and the software communicate both ways with the kernel, and that's how your phone knows when to do something. Input from one side is sent as output to the other, whether it's you playing Angry Birds, or connecting to your car's Bluetooth.
It sounds complicated, and it is. But it's also pretty standard computer logic -- there's an action of some sort generated for every event. Without the kernel to accept and send information, developers would have to write code for every single event for every single piece of hardware in your device. With the kernel, all they have to do is communicate with it through the Android system API's, and hardware developers only have to make the device hardware communicate with the kernel. The good thing is that you don't need to know exactly how or why the kernel does what it does, just understanding that it's the go-between from software to hardware gives you a pretty good grasp of what's happening under the glass. Sort of gives a whole new outlook towards those fellows who stay up all night to work on kernels for your phone, doesn't it?
Click to expand...
Click to collapse
ii. The operating system.
Once the kernel is loaded, the init scripts tell the Operating System to load. Android is the user interface for a custom built Java virtual machine called Dalvik. Dalvik was written by Dan Bornstein, who named it after the fishing village of Dalvik in Iceland, where his family originated from. The debate of which Java VM is superior is best left for another discussion, so I’ll simply say that DalvikVM is a register-based machine versus true JavaVMs which are stack based.
The Dalvik machine creates executable files (.dex files) which can be interpreted by the OS and run by the end user. These .dex files are OS version dependant. That simply means that applications and core functions built to work with one version of Android may or may not work well with other versions. Google provides the tools through it’s Software Development Kit (SDK) for applications to communicate with the OS.
Click to expand...
Click to collapse
iii. Core functions.
No smartphone would be complete without a set of functions that allow the device to be used as intended. Things like the phone and dialer interface, the calendar, the messaging system are core functions of the Operating System. In Android, these are run on top of the kernel as separate applications. The merits (or lack of) of providing these needed functions as separate applications is once again best left for another discussion, but this is what allows developers like HTC or Motorola to replace the standard functions with alternatives that provide a different look and feel from stock. HTC’s onscreen keyboard or Motorola’s MotoBlur contact list are great examples of this. The “little guy” isn’t left out of the mix either. Handcent SMS or Chomp SMS can integrate into the OS very well, as most of us already know.
An additional set of Core Functions are provided by Google. Popularly called GoogleBits, things like Gmail, sync, Gtalk and the Android Market are applications written by Google that give an extra set of useful functions to the OS. You’ll find these on all smartphones, as well as many other Android devices.
Click to expand...
Click to collapse
iv. Optional applications.
These are applications provided by the manufacturer to give the device even more usability. Things like the Amazon MP3 store, PDF readers, Corporate Calendar etc. allow you to do even more with your device. Remember - Droid Does
Click to expand...
Click to collapse
B. How is a ROM packaged?
In most cases a ROM will come packaged in a .zip file. The recovery image’s kernel (yes, it has one too!) has the ability to unzip and copy the contents into the correct place. Inside this zip file is a folder (META-INF\com\google\android\) that contains a script prepared by the ROM “cooker” (another of those techie terms - it means the person(s) who developed the ROM) that tells the system what to format, what to copy and where, and any file operations that need to be done. Each device does things a bit differently, but this script is where it all gets done. More on this folder later.
You’ll also see a /system folder. This is the meat of the ROM. It has the necessary OS files, the Core functions, and any optional applications the cooker decided to include. The folder is structured the same way it is on your device - /system/app, /system/framework, etc. The whole tree is usually copied over and the existing /system folder is overwritten. The cooker uses the script to tell the kernel to erase the existing system folder, copy the new folder over, and set the file permissions.
Sometimes you will also see a data folder. This usually is space set up for optional applications, including optional system tools like busybox or SuperUser white list. These applications could be placed in the /system folder, but placing them in the data folder makes it easier for the end user (you and I) to remove or update them as needed.
You’ll also notice a META-INF folder. This contains the update script we talked about earlier, as well as secure keys that need to be provided so the device knows the update can be trusted. A special note needs made here. Trusted means that the update is trusted to be in the correct form to load the device. It in no way means the ROM is safe from malicious code. Anyone is able to use a set of test keys and create a ROM that will flash and run your device - even those people with bad intentions. Flashing and running a custom 3rd party ROM is putting faith in the cooker that he or she not only knows what they are doing, but are honest as well. Also, some Motorola custom ROMs will have a small update.zip stored inside this folder to be run on first boot of the device.
Finally we are left with the boot.img file. This is the kernel and ramdisk image we discussed earlier. Your phone copies this over to be decompressed and run when the device boots.
Click to expand...
Click to collapse
2. How do I install a ROM?
In this section we’re discussing how to install a custom 3rd party ROM. ROMs from the manufacturer usually have a utility that runs on your PC to flash and load the new image.
A. Got Root???
What is Root?
Android rooting is the process of allowing users of smartphones, tablets, and other devices running the Android mobile operating system to attain privileged control (known as "root access") within Android's subsystem.
Rooting is often performed with the goal of overcoming limitations that carriers and hardware manufacturers put on some devices, resulting in the ability to alter or replace system applications and settings, run specialized apps that require administrator-level permissions, or perform other operations that are otherwise inaccessible to a normal Android user. On Android, rooting can also facilitate the complete removal and replacement of the device's operating system, usually with a more recent release of its current operating system.
As Android derives from the Linux kernel, rooting an Android device is similar to accessing administrative permissions on Linux or any other Unix-like operating system such as FreeBSD or OS X.
The process of rooting varies widely by device, but usually includes exploiting a security bug(s) in the firmware (i.e. in Android) of the device, and then copying the su binary to a location in the current process's PATH (e.g. /system/xbin/su) and granting it executable permissions with the chmod command. A supervisor application like SuperUser or SuperSU can regulate and log elevated permission requests from other applications. Many guides, tutorials, and automatic processes exist for popular Android devices facilitating a fast and easy rooting process.
For example, shortly after the HTC Dream was released, it was quickly discovered that anything typed using the keyboard was being interpreted as a command in a privileged (root) shell. Although Google quickly released a patch to fix this, a signed image of the old firmware leaked, which gave users the ability to downgrade and use the original exploit to gain root access. Once an exploit is discovered, a custom recovery image that skips the digital signature check of a firmware update package can be flashed. In turn, using the custom recovery, a modified firmware update can be installed that typically includes the utilities (for example the Superuser app) needed to run apps as root.
The Google-branded Android phones, the Nexus One, Nexus S, Galaxy Nexus and Nexus 4, as well as their tablet counterparts, the Nexus 7 and Nexus 10, can be boot-loader unlocked by simply connecting the device to a computer while in boot-loader mode and running the Fastboot program with the command "fastboot oem unlock".[9] After accepting a warning, the boot-loader is unlocked, so a new system image can be written directly to flash without the need for an exploit.
Recently, Motorola, LG Electronics and HTC added security features to their devices at the hardware level in an attempt to prevent users from rooting retail Android devices.[citation needed] For instance, the Motorola Droid X has a security boot-loader that puts the phone in "recovery mode" if a user loads unsigned firmware onto the device, and the Samsung Galaxy S II displays a yellow triangle indicator if the device firmware has been modified.
Click to expand...
Click to collapse
Yes ?:good:!!!
Custom ROM’s simply will not load on devices that aren’t rooted. In theory, it may be possible to sign a 3rd party ROM with the keys that the stock recovery image will flash, but for the most part you need to have flashed a custom recovery image before you can change your device’s ROM. Instructions and tutorials on how to root your device are all over the internet. Some are good, some are bad. The hacking forum is a great place to go and learn more about rooting and how to successfully get it done on your device.
Click to expand...
Click to collapse
B. Recovery
Most Android devices have had a custom recovery image written for them. This will overwrite the stock recovery image, allowing you to flash 3rd party ROMs as well as giving extra functionality. Help with finding and flashing the custom recovery image for your device can also be found in the hacking forum. The installation of a custom recovery image also allows for a very important function. Backup and restore.
Click to expand...
Click to collapse
.C. Nandroid
Nandroid is a set of bash scripts and code written by that copies the state of your system and stores it in a folder on your SD card. You can then use the restore function of Nandroid to restore to this point at any time. This is a priceless feature and reason enough to root your phone. It’s included by default in most custom recovery images, and the code is freely available to use if you’re inclined to write your own recovery image.
Click to expand...
Click to collapse
In most situations, using Nandroid to back everything up is easy:
1. Verify you have a memory card with enough free space (~300MB to backup, ~500MB to restore).
2. Reboot your device into recovery. It’s slightly different for each device, once again hacking forum FTW!
3. Navigate through the menu and select the Nandroid Backup function.
4. Apply your choice and wait for the device to tell you it’s finished.
It’s always good practice to copy the entire nandroid folder from your SD card to a safe place. You can then copy it back to the SD card if the card is ever damaged, lost or erased.
D. Copy and Flash
You’re rooted, have downloaded a custom ROM, have your system backed up and are now ready to flash your device. This is not nearly as scary as it sounds.
1. Mount your SD card to your PC, and copy the .zip file to the root folder of the card. Don’t unzip the file, and don’t look for a folder called root. The root folder in this case means the base folder, what you will see when you mount your card to a PC or the device.
2. Reboot your phone into recovery.
3. Navigate through the recovery menu and select the flash update option. Depending on your recovery image, the file may need to be named update.zip, or you may be able to select any zip file on your card as long as it’s the correct format. The cooker knows this as well and if the ROM needs to be named update.zip it will be.
4. Apply your choice and wait for your device to tell you it’s finished.
5. Reboot.
Click to expand...
Click to collapse
It’s worth noting that many times a new ROM will require that you wipe and factory reset your devices data. While inconvenient, it’s often necessary to get rid of the old data as it may be incompatible. As long as you’re using the cloud for calendar and contacts, they will be re- downloaded and stored back on your device automatically.
Dirty flash and Clean flash
A dirty flash is only wiping cache and davlik then flashing your ROM....
a Clean flash is at LEAST factory reset/data wipe + wiping davlik(factory wipe takes care of /cache also)... Maybe doing a format /system also.
ERRORS encountered in CWM Recovery
.
What is CWM Recovery ?
ClockworkMod Recovery is a custom recovery for many Android devices. It is considered to be the most popular recovery for Android due to its easily-ported nature, and integration with ClockworkMod ROM Manager by Koush(Koushik Dutta). The easiest way to recognize it is by the printed name when it first starts, and the background logo of a gear and hat.
Click to expand...
Click to collapse
ERROR STATUS 6
This is usually caused by CR/LF EOL(Windows style End Of Line) in updater-script. Change it to LF EOL(Unix Style EOL) using Linux command: dos2unix updater-script, then re-signing the ZIP, will usually fix this error.
Click to expand...
Click to collapse
ERROR STATUS 7
This is usually caused by a corrupt download, or bad file signature. Re-downloading (or re-signing) the ZIP will usually fix this.
Click to expand...
Click to collapse
We have been consistently seen and heard people facing error “Status 7″ error while trying to flash or install
custom ROMs or firmware packages on their Android smart phones or tablets with ClockworkMod Recovery. Many
of the users are nowadays facing this problem with CWM Recovery while flashing .zip files of modded or custom
Ice Cream Sandwich (ICS) or Jelly Bean (JB) ROMs on their devices. So, you have also downloaded a custom ROM,
placed its .zip file in your phone’s or tablet’s SD card, booted into ClockworkMod Recovery, selected – “install zip
from sdcard” and then chosen the .zip file of the ROM to get it installed on your device. But instead of getting
flashed successfully, if you are facing the issue mentioned below, then just keep reading this article to find out
what’s wrong and fix up the problem :
Finding update package…
Opening update package…
Installing update…
Error in /sdcard/custom-jelly-bean-rom.zip (Status 7)
Installation aborted
Click to expand...
Click to collapse
or the following error right after CWM recovery shows –
Installing update…
assert failed: getprop(“ro.product.device”) == “I9103″ || getprop(“ro.build.product”) == “I9103″ || getprop
(“ro.product.board”) == “I9103″
Error in /sdcard/android-4-1-1-ics-rom-latest.zip (status 7)
Click to expand...
Click to collapse
So, if you are facing any of these errors while trying to install the desired custom ROM package on your Android
phone or tab, then you may try a various things or steps which may turn out to be the workaround of this
problem. Here are a few tips to get this “Status 7” error fixed in ClockworkMod Recovery and flash the ROM
successfully on your device :
(1) First of all, make sure your device’s bootloader is unlocked. If it is already unlocked but you are still
not able to flash the ROM, then just extract the .zip file of the ROM into a new folder, find the boot.img file from
that directory and flash it up on your phone or tablet via fastboot on your PC.
(2) Make sure that you are having the appropriate Radio or Baseband version installed on your device which is
supported by the custom ROM you are trying to flash. Most of the ROMs requires the latest version of Baseband, so
just update or upgrade your device to the latest Baseband version and then try to install the ROM once again.
(3) Update your device to the supported / latest build of official firmware before trying to install the ROM. You can
do it from – Settings > About Phone / Device > Software Update.
(4) Make sure you are having the supported or required kernel installed on your phone or tab. If it’s not, then flash
a new kernel right away and try to install your custom ROM once again.
(5) Is the ROM which you are trying to flash really works ? Find out whether it is working for other users or not.
Click to expand...
Click to collapse
Error Status 0
Well sometimes while flashing some ROMs especially the cooked ones we get Error status 0 in the CWM Recovery
this error is an indicator of Wrong Update Binary.This is usually caused by an incompatible update-binary in edify ZIPs. Replacing it with a compatible one, then re-signing the ZIP, will usually fix this error.
Click to expand...
Click to collapse
Now it's time for the partitions :good:
Let’s start with a list of standard internal memory partitions on Android phones and tablets. These are:
/boot
/system
/recovery
/data
/cache
/misc
In addition, there are the SD card partitions.
/sdcard
/sd-ext
Note that only /sdcard is found in all Android devices and the rest are present only in select devices. Let’s now take a look at the purpose and contents of each of these partitions.
/boot
This is the partition that enables the phone to boot, as the name suggests. It includes the kernel and the ramdisk. Without this partition, the device will simply not be able to boot. Wiping this partition from recovery should only be done if absolutely required and once done, the device must NOT be rebooted before installing a new one, which can be done by installing a ROM that includes a /boot partition.
/system
This partition basically contains the entire operating system, other than the kernel and the ramdisk. This includes the Android user interface as well as all the system applications that come pre-installed on the device. Wiping this partition will remove Android from the device without rendering it unbootable, and you will still be able to put the phone into recovery or bootloader mode to install a new ROM.
/recovery
The recovery partition can be considered as an alternative boot partition that lets you boot the device into a recovery console for performing advanced recovery and maintenance operations on it. To learn more about this partition and its contents, see the ‘About Android Recovery’ section of our guide to ClockworkMod recovery.
/data
Also called userdata, the data partition contains the user’s data – this is where your contacts, messages, settings and apps that you have installed go. Wiping this partition essentially performs a factory reset on your device, restoring it to the way it was when you first booted it, or the way it was after the last official or custom ROM installation. When you perform a wipe data/factory reset from recovery, it is this partition that you are wiping.
/cache
This is the partition where Android stores frequently accessed data and app components. Wiping the cache doesn’t effect your personal data but simply gets rid of the existing data there, which gets automatically rebuilt as you continue using the device.
/misc
This partition contains miscellaneous system settings in form of on/off switches. These settings may include CID (Carrier or Region ID), USB configuration and certain hardware settings etc. This is an important partition and if it is corrupt or missing, several of the device’s features will will not function normally.
/sdcard
This is not a partition on the internal memory of the device but rather the SD card. In terms of usage, this is your storage space to use as you see fit, to store your media, documents, ROMs etc. on it. Wiping it is perfectly safe as long as you backup all the data you require from it, to your computer first. Though several user-installed apps save their data and settings on the SD card and wiping this partition will make you lose all that data.
On devices with both an internal and an external SD card – devices like the Samsung Galaxy S and several tablets – the /sdcard partition is always used to refer to the internal SD card. For the external SD card – if present – an alternative partition is used, which differs from device to device. In case of Samsung Galaxy S series devices, it is /sdcard/sd while in many other devices, it is /sdcard2. Unlike /sdcard, no system or app data whatsoever is stored automatically on this external SD card and everything present on it has been added there by the user. You can safely wipe it after backing up any data from it that you need to save.
/sd-ext
This is not a standard Android partition, but has become popular in the custom ROM scene. It is basically an additional partition on your SD card that acts as the /data partition when used with certain ROMs that have special features called APP2SD+ or data2ext enabled. It is especially useful on devices with little internal memory allotted to the /data partition. Thus, users who want to install more programs than the internal memory allows can make this partition and use it with a custom ROM that supports this feature, to get additional storage for installing their apps. Wiping this partition is essentially the same as wiping the /data partition – you lose your contacts, SMS, market apps and settings.
With this, we conclude our tour of Android partitions. Now whenever you install a ROM or mod that requires you to wipe certain partitions before the installation, you should be in a better position to know what you’re losing and what not and thus, you’ll know what to backup and what not.
ADB-Android Debugging Bridge
Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an emulator instance or connected Android-powered device. It is a client-server program that includes three components:
A client, which runs on your development machine. You can invoke a client from a shell by issuing an adb command. Other Android tools such as the ADT plugin and DDMS also create adb clients.
A server, which runs as a background process on your development machine. The server manages communication between the client and the adb daemon running on an emulator or device.
A daemon, which runs as a background process on each emulator or device instance.
You can find the adb tool in <sdk>/platform-tools/.
When you start an adb client, the client first checks whether there is an adb server process already running. If there isn't, it starts the server process. When the server starts, it binds to local TCP port 5037 and listens for commands sent from adb clients—all adb clients use port 5037 to communicate with the adb server.
Click to expand...
Click to collapse
The server then sets up connections to all running emulator/device instances. It locates emulator/device instances by scanning odd-numbered ports in the range 5555 to 5585, the range used by emulators/devices. Where the server finds an adb daemon, it sets up a connection to that port. Note that each emulator/device instance acquires a pair of sequential ports — an even-numbered port for console connections and an odd-numbered port for adb connections. For example:
Emulator 1, console: 5554
Emulator 1, adb: 5555
Emulator 2, console: 5556
Emulator 2, adb: 5557
and so on...
As shown, the emulator instance connected to adb on port 5555 is the same as the instance whose console listens on port 5554.
Once the server has set up connections to all emulator instances, you can use adb commands to access those instances. Because the server manages connections to emulator/device instances and handles commands from multiple adb clients, you can control any emulator/device instance from any client (or from a script).
Note: When you connect a device running Android 4.2.2 or higher to your computer, the system shows a dialog asking whether to accept an RSA key that allows debugging through this computer. This security mechanism protects user devices because it ensures that USB debugging and other adb commands cannot be executed unless you're able to unlock the device and acknowledge the dialog. This requires that you have adb version 1.0.31 (available with SDK Platform-tools r16.0.1 and higher) in order to debug on a device running Android 4.2.2 or higher.
Syntax
You can issue adb commands from a command line on your development machine or from a script. The usage is:
adb [-d|-e|-s <serialNumber>] <command>
If there's only one emulator running or only one device connected, the adb command is sent to that device by default. If multiple emulators are running and/or multiple devices are attached, you need to use the -d, -e, or -s option to specify the target device to which the command should be directed.
LOGCAT
The Android logging system provides a mechanism for collecting and viewing system debug output. Logs from various applications and portions of the system are collected in a series of circular buffers, which then can be viewed and filtered by the logcat command. You can use logcat from an ADB shell to view the log messages.
-b <buffer> Loads an alternate log buffer for viewing, such as event or radio. The main buffer is used by default. See Viewing Alternative Log Buffers.
-c Clears (flushes) the entire log and exits.
-d Dumps the log to the screen and exits.
-f <filename> Writes log message output to <filename>. The default is stdout.
-g Prints the size of the specified log buffer and exits.
-n <count> Sets the maximum number of rotated logs to <count>. The default value is 4. Requires the -r option.
-r <kbytes> Rotates the log file every <kbytes> of output. The default value is 16. Requires the -f option.
-s Sets the default filter spec to silent.
-v <format> Sets the output format for log messages. The default is brief format. For a list of supported formats, see Controlling Log Output Format.
awesome thread to learn everything in a quick while
Again.? :good:
But highlight the Status error with big & bold font.
Disturbed™ said:
Again.? :good:
But highlight the Status error with big & bold font.
Click to expand...
Click to collapse
I think he's trying to take over XDA
But just to keep this on topic, great thread for those who are learning and aren't sure what certain things are for.
I guess I'll have to make another thread in this forum just so other RCs don't take all the ideas
SGS2 FAQ | HTC One FAQ
KidCarter93 said:
I think he's trying to take over XDA
But just to keep this on topic, great thread for those who are learning and aren't sure what certain things are for.
I guess I'll have to make another thread in this forum just so other RCs don't take all the ideas
SGS2 FAQ | HTC One FAQ
Click to expand...
Click to collapse
Lolzzz.. Yes buddy. He is something else.
Collecting Informations & useful stuff for all users. May be in near future, he will take over XDA.
It's all your love guys. Sometimes even my guides correct my mistakes!
Started from the bottom
Guys if you like this thread please press the tip us button so that more and more people who are willing to learn about android phone and how they work can get help.
I will be grateful to you all.
Started from the bottom
Very nice write up TechnoCrat :good::good::good:
TEAM MiK
MikROMs Since 3/13/11
Long way to go mate!
Congo! This thread got featured on XDA Portal
http://www.xda-developers.com/android/android-101-how-it-all-fits-together/
Thank you very much. I needed this definition thread. I kinda understand but it'd nice to hear official language that's understandable.
Sent from that FBI van parked down the street.
Thanks for the CWM errors write up and another bookmark.
Tha TechnoCrat said:
i. The kernel.
If you’re feeling exceptionally geeky, plug your Android phone into the USB port on your PC and let the PC boot from the USB device. No, it doesn’t actually load, but you can watch the animation while it tries to match up the hardware support with what’s inside your PC
Click to expand...
Click to collapse
What. The. Hell. Are you talking about?
If you mean booting the device's kernel on the PC, unless the device uses an x86 processor, it flat out will not boot, let alone mount the device's system, to display the bootanimation.zip
/snarkieness
Sorry, I had to let that out.
Also, init is called/started after the kernel has started, and generally after it has setup most of the hardware.
so I’ll simply say that DalvikVM is a register-based machine versus true JavaVMs which are stack based.
Click to expand...
Click to collapse
I don't even truly understand that, so could add a little more detail, or remove it?
I'm speaking mostly from my implied knowledge, gained from tinkering with android/linux for a few years.
ADB and Logcat added
Hey, Thanks for the article. Can you talk about root? There is some mis-leading information and I really want to learn about it. Thanks again.
ak700 said:
Hey, Thanks for the article. Can you talk about root? There is some mis-leading information and I really want to learn about it. Thanks again.
Click to expand...
Click to collapse
Okay buddy
Editone! !!
"Thanks button is just to avoid "THANKS" posts in threads. Nothing more than that. Don't ask in signature or post for it and defeat the purpose why it was introduced"
Bump to update newbies
"Thanks button is just to avoid "THANKS" posts in threads. Nothing more than that. Don't ask in signature or post for it and defeat the purpose why it was introduced"

[TOOL]Playstore, No ADs, Launcher, BusyBox, Root and more! Noob friendly one-click

-----------PROJECT HAS BEEN ABANDON AND IS OBSOLETE----------
-----------PROJECT HAS BEEN ABANDON AND IS OBSOLETE----------
-----------PROJECT HAS BEEN ABANDON AND IS OBSOLETE----------
WORKS ON 5.1.1 ALSO!
(Link in next reply)
Fully automated and noob friendly. :3
Done:
Root
BusyBox
Disable OTA
Change Launcher
Install full Google Play Functionality
Autoinstall flash player
build.prop optimizations
A few more features...
This may be compatible with other fires, but I have only tested it on the Fire 7" 5th generation.
This is a script I wrote in my spare time.
This script will optimize, root, install google play, and debloat your device.
Enjoy :3 Don't forget to hit thanks.
STEPS
1. In device options, tap on serial number until the developer options appear. If required (which it is likely not, but for some it is. DON'T DO THIS IF IT'S ALREADY WORKING.) install the ADB driver by going into the device manager of windows and rightclick update driver on your device under unkown devices, then point it to the driver folder included in this zip, or, you know, try the driver installer .exe included. Make sure driver signature enforcement is disabled in Windows!
2. Go into the developer options of android and enable Debugging
3. Go to the homescreen on the tablet, EXTRACT the zip on your computer, and run the script 1_ROOT_FIRE.bat in the zip on your computer.
This should only take around five minutes too complete.
YOUR DEVICE WILL REBOOT SEVERAL TIMES.
Easy enough, right? :3
Troubleshooting:
Unless you are running Fire OS 5 or higher, using this script probably won't get you playstore access, but it may root it. This was made primarily for the Amazon Fire 5th Generation 7" Tablet. (The "50 dollar tablet")
Don't run as root or admin.
If your device gets stuck in fastboot:
When the device reboots and goes into fastboot mode the drivers didn't recognise it. Leave the script running and go into Device Manager. Your Kindle will be listed as "Fire" with a yellow icon. Follow same steps to install drivers but instead of directing it to the "usb driver" folder contained in the zip file - select "let me pick from a list of drivers". Then pick adb interface then scroll to the bottom and select the last option.
The script hangs on adb daemon started:
If it hangs there, android debugging on your device isn't communicating with your computer. The fix can range from reconnecting your device, making sure android debugging is enabled in the Device> Developer options, making sure adb drivers are installed, or restarting the script.
Keep in mind, if you give this tablet to a non tech savvy user, open SuperSU, go to options, and click full unroot.
XDA:DevDB Information
AutoRootScript, Tool/Utility for the Amazon Fire
Contributors
glitch3yf0x, JaboJG, KennBr, k4y0z
Version Information
Status: Stable
Current Stable Version: 4.14
Created 2015-12-30
Last Updated 2016-04-08
Secondary Download Mirror
(Recommend) REGULAR VERSION:
https://www.androidfilehost.com/?fid=24352994023705981
NO DEBLOAT version:
https://www.androidfilehost.com/?fid=24391638059059079
Read the post below to choose the version right for you.
Version diffrences
Regular version: Choose this if you want the full android experience to your tablet with the added features of the script. This will remove all the unwanted Amazon bloatware that fills up the internal storage and will make your tablet feel more like an android tablet.
No debloat version: Choose this if you want to keep the Amazon experience with the added features of the script. This will leave Amazon's features and will make your tablet feel more like an Amazon tablet.
Notice: this script will not wipe or touch any of your files on the internal storage or sd card
Fully stable!
Great news! All bugs have been fixed! As of version 4.14 uploaded 1/5/16, all OS versions have been tested and are confirmed working properly. Enjoy!
If anything goes wrong, such as a USB cable being unplugged or the battery dying, pretty much anything can be fixed by booting into recovery and adb sideloading the latest firmware.bin from amazon.
Thanks for Donating:
Lorenzo
@BarbaraaK
So was the Mac OS X issues fixed?
pride0929 said:
So was the Mac OS X issues fixed?
Click to expand...
Click to collapse
I believe so [Old post. Issue fixed with 4.14, if there was one.]
I ran the script using OS X, everything seemed to go well. But the Fire is stuck booting at the "fire" logo.
Mac OS X
jmallow said:
I ran the script using OS X, everything seemed to go well. But the Fire is stuck booting at the "fire" logo.
Click to expand...
Click to collapse
Updated issue. [Issue fixed with 4.14, if there was one.]
glitch3yf0x said:
Give it 10 minutes before force rebooting. It may be rewriting cache. This is very odd. Any error messages on the computer?
Don't worry about your tablet. We can adb sideload if anything wen't wrong.
What OS is your tablet running? Is your tablet the Fire 7? It may be an issue with build.prop. I'm retesting it now using the Mac OS X source files. In the mean time, tell me if your Fire boots.
Click to expand...
Click to collapse
It's a 5th gen Fire 7 (the one that was released in Sept 2015). I side loaded to get back to factory, but mistakenly used the fire hd .bin file...and now it won't turn on at all. Lol. Might be a dead battery though I think, so its plugged in now. Will try again after a bit.
jmallow said:
It's a 5th gen Fire 7 (the one that was released in Sept 2015). I side loaded to get back to factory, but mistakenly used the fire hd .bin file...and now it won't turn on at all. Lol. Might be a dead battery though I think, so its plugged in now. Will try again after a bit.
Click to expand...
Click to collapse
Alright. Best of luck. I tested it on my fire again and there were no problems. If you have problems the second time tell me.
Any results?
glitch3yf0x said:
Any results?
Click to expand...
Click to collapse
I bricked it by installing the wrong version by mistake.
Hopefully Amazon warranty will replace it without question.
I've just run the script for my daughters fire 6 5th gen running 5.1.1 and all went smoothly. Has the look and feel of a great wee device now!
Thanks for your efforts ☺
Thread moved from http://forum.xda-developers.com/amazon-fire/general/root-fire-5th-gen-autoroot-script-noob-t3276923
Just installed this without a hitch. So far so good!! Thank you!!
Worked really well on 5.1.1 Thank you so much!
Now the only issue I have is that I want to use Google Now Launcher in place of Nova. Is there a way to do it?
EDIT: Never mind, it asked me which home to set after a reboot.
thehrushi said:
Worked really well on 5.1.1 Thank you so much!
Now the only issue I have is that I want to use Google Now Launcher in place of Nova. Is there a way to do it?
EDIT: Never mind, it asked me which home to set after a reboot.
Click to expand...
Click to collapse
I should post a poll. Google Now or Nova.
glitch3yf0x said:
I should post a poll. Google Now or Nova.
Click to expand...
Click to collapse
Just add a selector in the script and have it push the appropriate apk
BaT420 said:
Just add a selector in the script and have it push the appropriate apk
Click to expand...
Click to collapse
I was gonna suggest the same. Nova after rooting makes sense, since the widgets work. But I like Google Now on left swipe.
Yeahhh
Very good. Fire 7 2015 5.1.1.
Now I've an Android table not a garbage :good:
thanks a lot.

Batch Install Apps Script

We all know how fun flashing a new rom is... and we also know how painstaking it is to reinstall all the apps again.
So I was looking around XDA to find how to automatically install apks saved on PC, and I found a couple of nifty solutions - including a full blown GUI app to backup/rename/reinstall apps & data. Unfortunately, it didn't work for me so good. Hence, decided to go the command-line route. Found a few commands and wrote a script that automatically creates a list of apks in the directory and installs it in your device via adb.
Note :
1. If you are a GUI person, you're better off without this one.
2. I wrote this one all by myself with help from this thread : http://http://forum.xda-developers.com/showthread.php?t=743457
3. I'm not a developer. Yet I decided to share this one as i found it extremely helpful, and hopefully it may help someone else somewhere. Plus, this is my first thread, so in case I missed a few etiquettes, I apologize in advance. :angel:
Install From PC :
1. Device on and running, with Android Debugging Enabled.
2. Make sure your PC can connect with your device (use "adb devices" command, adb should be usable system-wide)
3. Collect all your apks in one folder (say C:\Apps)
4. Download & Extract the attached zip and put installPC_v1.bat file inside your apks' folder (here C:\Apps)
5. Double click on the batch file.
6. Done.
Note :
1. You can view which app is being installed and status reports of all previous apps in the command prompt that appears.
2. To make adb usable system-wide, just include it in the path System variable in Control Panel.
3. My "Verify apps over USB" in Developer Options and Security Check in Google Settings were Disabled. This may or may not affect the installation process.
4 This is the first version and it should work without hassle if your setup is fine, but I haven't included any error handling or any "extra" features. Also, haven't rigorously tested on multiple devices. It works on my Win 10 64-bit and Note 4 (with both Touchwiz and AOSP). Just give it a go :fingers-crossed:

A comprehensive guide to the Lenovo Yoga Tab 3 Pro (YT3-X90*) and a Cooked ROM

THESE COOKED ROMS ASSUME YOU HAVE ALREADY AN UNLOCKED BOOTLOADER AND TWRP AS RECOVERY SYSTEM. You can flash them using TWRP, after wiping ART, cache, data, boot and system partitions.
FINAL RELEASE: Well... this is the final release from me and it is specifically for the WiFi model. I hope it is worth it for you. It is more stable and somewhat updated, anyway, if you use a X90F (wifi model) you will probably like it. The other versions are still up for whatever reason. Here's the link. Follow this guide by @Quardah if you are coming from a factory ROM. Go to post 46 if you can't get past the setup wizard. A barely tested (by @Nuihc88) version for the 3G (X90L) model can be found here.
NOTICE: If you find this work useful, mirror it. I won't be hosting it for free forever and it is becoming a burden to my Nextcloud installation. One would say this is a pretty much forgotten thread, but I'm seeing almost daily download activity. I'm putting the ROM files offline now and getting away from XDA for a while. Please don't DM me for the files. If you are looking for them, ask others in this thread. Good bye.
||||||||||||||||||| FROM HERE IS JUST INFORMATION YOU PROBABLY DON'T NEED |||||||||||||||||||
Spoiler: NEWS THAT ARE NOT ANYMORE.
APRIL 9, 2021: You can find in these links a new version of the cooked ROM.
The link for the updated cooked ROM is: https://centsoarer.ddns.net/s/Y8o3eoBK4Ryx5RP. This is a version with GAPPS updated: https://centsoarer.ddns.net/s/FPKjgQcmW3CHZCw. Feel free to mirror, unless you are afraid of Lenovo's lawyers, but don't forget to share the link.
My personal version... even more debloated (if you don't need chinese, japanese, korean, or russian input support/apps) and with CPU tweaks for my own usage: https://centsoarer.ddns.net/s/jcCDAgNedryGRjo
KNOWN ISSUES AND SOLUTIONS:
1) One random reboot after the first boot will happen and it is normal.
2) I'd reccommend to stay with Magisk 21.4 for a while, Magisk Manager >21.4 won't manage your extensions.
3) If you can't get past the initial Setup Wizard check post 46. Basically you have to boot into bootloader, erase the config partition and format it again.
4) Needs confirmation, but versions with signature spoofing patches seem to break Lenovo's SmartSide Bar.
JUNE 12: Fast update on the Cooked ROM and TWRP and KERNEL. They are not as universal as I implied before. Proceed carefully since they may not work four your device/firmware. Make a Nandroid backup and only flash with testing purposes.
JUNE 5: So, I know this is not what everybody who owns this tablet wants to have (that is Android 9 or 10 of course) but, in recent weeks Lenovo updated the firmware of this tablets. It still is a Marshmallow one and it still sucks big time but I took it as a base and cooked it to deliver a newer TWRP recovery with compression, a flashable modified kernel and a cooked flashable stock ROM to free the owners of this tablets from the treacherous path of making this hardware to work properly. If you want a better overall experience and are in stock firmware you just need to Unlock your bootloader, flash TWRP, Format data partition (not only wipe), Wipe Cache, Dalvik/ART, System and DATA and flash the Cooked ROM to put this tablet in a sweeter spot. For details go to post #2!
JUNE 3: Been trying to get to know some of the source code available for Cherry Trail devices and I am fairly lost at building TWRP from source. Anyway, I ported a newer TWRP recovery IMG file for the YT3-X90F (maybe L, X, Y and Z) from the TWRP image for the Chuwi Hi10 Pro tablet from here, using AIK-Linux. The result is in the second post labeled as beta, since I only tested in the YT3-X90F model, running lollipop firmware. So far, it works fine flashing ZIP archives, backing up and restoring backups. Advantages? Well, backups are way lighter if you enable compression (like half the size), higher resolution, twrp turns off the screen with a timeout and whatever made them bump from version 2 to 3. While I could port a newer TWRP version, I just wanted to have lighter backups with compression... so maybe it is what it is .
ORIGINAL POST STARTS HERE. This is general information that I collected for geeks or desperate users that bricked their tablets. When I started this post it wasn't intended to produce a cooked ROM that would include most of these hacks. You don't need this if your tablet boots to Android or TWRP. You also don't need this if you are ready to flash the cooked ROM.
(This is a lenghty post. I suggest you to navigate by section header and find the one you might need.)
There are several Lenovo Yoga 3 tablet models out there and, while some of them enjoy of prime community support as the Yoga Tab 3 Plus, this Intel Atom powered tablet is pretty much forgotten and, at the same time, users were recently buying this tablet, which is a great piece of hardware but has the most terrible support by Lenovo.
Spoiler: WHAT LENOVO TABLET(S) IS THIS GUIDE FOR?
Basically, this is that Lenovo tablet with an attached projector and an Intel Atom Cherry Trail x5 Z8500. There are several models, though, to my knowledge they vary in their code names in the last letter, the two most basic ones (2GB RAM, 32 GB ROM) are the YT3-X90F and the YT3-X90L, the former connects to the internet by WiFi and the latter being the one with LTE/Phone capabilities. There are other models, though, and they vary on the amount of RAM and internal storage. Apparently, the YT3-X90[YX] models (the 4/64 GB refresh) have some use for these firmwares we describe, but in a very specific way, if you own a Y or X model, keep reading, especially the next section.
Spoiler: EXPLAINING HOW TO FIND THE RIGHT STOCK FIRMWARE
Lenovo support has been terrible (there are no words to describe it, really), so they launched this tablet with Android 5.1 Lollipop and they maintained it for a while but were very slow to deliver Android 6.0 Marshmallow. In fact, there was already Android Nougat, when they sent the Marshmallow update. Nevertheless, the update was bad. Performance issues were always a thing and some functionality went lost in the update (less intuitive multiple windows, a crippled recents activity/screen, and a laggy overall experience). Bottom line, they launched a curated Android Lollipop 5.1 firmware with security updates until March 2016 (striked because the last lollipop update f*cks up my sensors, except the light one) and a half-assed Android Marshmallow 6.0.1 firmware.
Of course, at the time, I'm guessing most of us upgraded to Android Marshmallow 6.0.1, hoping the upgrade would fix the issues in Lollipop or with security patches in mind. The reality was that Android 6.0.1 wasn't nearly as maintained as 5.1 and security ambitions went nowhere. So, we got the upgrade all right, but at this point, both Android versions can be considered inherently insecure and we really shouldn't be using it for sensitive work.
OK, there are several Android 5.1 and 6.0 firmwares, you can recognize them because they are all over the internet typically in a compressed format. For example, this firmware hosted in androidhost.ru named:
YT3-X90F_ENG_S100265_1601281130_WW24_ROW
Is a firmware for the Lenovo Yoga Tab 3 (YT3) Pro (X90) Wifi Version (F). The ENG part is an indication of the build type, ENG is an engineer build while USR is probably a firmware for the end user (this is common now that I know a bit more about AOSP source code), it is a Lollipop firmware (S1, Marshmallow would be a S2) with update version (00265), date of compilation and a good estimate of its security patch (1601281130), the WW24 is the weekly release version of the Android kernel for Intel devices (the latest, in May 2020, being WW31 which is exactly the same as WW28 and not updated since 2016), the final part means it is the global ROM version (ROW, opossed to the Chinese version CN). This is the latest Lollipop firmware I am aware of, so, as an example, an imaginary Android Marshmallow Chinese firmware for the LTE version of the Yoga Tab 3 would look like:
YT3-X90L_USR_S200013_1610141535_WW24_CN
As an additional note the Chinese ROMS, I presume, are not trusty but they are also Google-free for what it's worth. On the other hand, they ship with a "Lenovo Services Framework" that should be as intrusive as the Google Play Services. Oh, also, baidu and yandex, and, really, any less traditional search engine can help you find a fitting firmware.
Spoiler: EXPLAINING HOW TO FLASH A STOCK FIRMWARE (DOWNGRADE TO LOLLIPOP AND UNBRICK)
I did test several firmwares, chinese and global, lollipop and marshmallow and the safest and easiest way to flash them is by using the Intel Platform Flash Tool Lite . I can't say I trust in this site, but it hosts a handy tutorial on how to use it, though, is pretty intuitive. The software exists for Mac, Windows and Linux, be sure you are in, at least, the 5.8.x version, this is important to avoid the need to install some special drivers separately as a pre-requisite. Grossly, Intel Flash Tool Lite works like this:
0) Turn off your tablet if it is on.
1) Launch Intel Platform Flash Tool Lite.
2) If your downloaded firmware is in zip format load it with the blue "Browse..." button.
2 bis) OR, if your firmware is in other compressed formats, uncompress it first. After this use the "Browse..." button to load the "flash.json" file.
3) In Configuration option select "blank" if it isn't set already. Optionally, un-tick the "On-demand flash" option to have more control of this process. Also, maybe you can use the "erase" configuration here.
4) Start your tablet in DNX mode. To do this, press Vol- and hold it, then Vol+ and keep holding both, then press the Power button until it turns on and you see the Lenovo logo and some text indicating you are in said mode.
5) Connect your Yoga Tablet with a USB cable and your Intel Platform Flash Tool Lite windows should show it as detected. Now you can proceed using the blue "Start to flash" button.
6) Keep an eye on your tablet, since some firmwares will prompt to set some more options. Unless you know what you are doing, answer "Yes" to any question.
7) Reboot and wait.
If a couple hours have passed and the tablet hasn't booted, maybe you should try another firmware.
IMPORTANT NOTE AND INSTRUCTIONS FOR YT3-X90Y AND POTENTIALLY YT3-X90X USERS: I don't know the rules in xda about linking to other forums but in certain forum there is an answered question about the Y model (the 4/64 GB WiFi only refresh) on how to flash a firmware. Instructions are the same as I gave in this section, except, apparently, you need to do it twice, first with the ENG version and the second time with the USR version except you are not using the flash.json file, this time you'll browse for the flash_factory_1st_stage.json one and the factory1st configuration in fastboot. It is not clear what are the consequences of not doing it this way or what if you combine different firmware versions (it would be interesting to have a tester here). Notice please, these firmwares are marked for the YT3-X90F model. So, clarifying:
1) Follow the instructions above to flash the YT3-X90F_ENG firmware.
2) Power off your tablet.
3) Boot into bootloader (not in DNX, you need to boot into bootloader by powering on while holding Vol+).
4) From the YT3-X90F_USR firmware folder use Intel Platform Flashing Tool Lite to load the flash_factory_1st_stage.json and select the factory1st configuration.
5) After flashing the USR firmware, reboot and you should be good to go.
METANOTE: This wasn't tested by me, please do this only when you are hopeless with your hardware. This is just an educated guess but I bet it works the same with the YT3-X90L (the LTE version 2/32 GB Yoga Tab 3 Pro) and the YT3-X90X (the 4/64 GB refresh).
ALTERNATIVE WAY TO FLASH A STOCK FIRMWARE (ADVANCED USERS, requires fastboot)
Well, there is no need, really, to use that Intel tool. In my search for a lollipop firmware (I wanted to downgrade from Marshmallow) I found the firmware YT3-X90F_USR_S100195_1512052308_WW24_ROW in www.firmware247.com or www.androidfilehost.com (IMPORTANT: please read the note on downgrading to Android 5.1 Lollipop in the note at the end of this section). This firmware was special since, if you are in Windows and have fastboot executable ready and in place, you can run a script (run_me.bat) in the Windows terminal (CMD) or Powershell to flash the firmware semi-automatically. I think this firmware was modified, though, since I found differences in the boot.img when compared with stock firmwares. This script is credited to XDA members @ionioni and @joesnose and you can replicate its steps if you:
0) Turn off your tablet if it is on.
1) Start your tablet in DNX mode. To do this, press Vol- and hold it, then Vol+ and keep holding both, then press the Power button until it turns on and you see the Lenovo logo and some text indicating you are in said mode.
2) Connect your tablet to your fastboot enabled PC using a USB cable.
3) Input "fastboot flash osloader loader.efi"
4) Wait 5 seconds to be sure the loader flash finishes.
5) Reboot into Bootloader. If you don't know how, one way is to hold Vol+ and Power on your tablet.
6) Input "fastboot oem unlock" and confirm using Vol keys to select the right option and the Power button to enter it.
7) Input "fastboot flash system system.img"
8) Input "fastboot flash boot boot.img"
9) Input "fastboot flash recovery recovery.img"
10) Input "fastboot flash bootloader bootloader.img"
Follow your instincts, since I don't know if these IMG files are always named the same. You can get these IMG files from downloaded sources or dump them yourself using dd command.
NOTE ON DOWNGRADING TO ANDROID LOLLIPOP 5.1: So, one of my main concerns has been to go back to Android Lollipop. There is a last version of Lollipop from where you can upgrade to Marshmallow with a security patch from March 2016. Nevertheless, you MAY end up loosing other sensors except the light one. If this happens, you need to use a complete firmware flash using Intel Platform Flash Tool Lite. In my experience, some boot images are not compatible with other weird partitions like country or misc.
Spoiler: TWEAKS ALREADY IN THE COOKED ROM
The first boot takes some time even amounting for the time of the setup itself. By the time you are in the launcher tapping on app's icons you think there's nothing wrong with our device, but after some apps are in memory, you notice some lag. You think "OK, it is updating, but soon it'll settle", but it does not. So, you reboot again after updates and fire up a terminal emulator and connect to your tablet using a USB cable with USB debugging turned on and issue a free command to find something like this:
Code:
total used free shared buffers
Mem: 1950372 1820964 129408 0 7756
Swap: 524284 10740 513544
Total: 2474656 1831704 642952
Which means you have a total of ~2.5 GB (this is the 2 GB model). So, did I download that extra half GB of RAM or Lenovo was feeling generous? Well, no. The issue here is Lenovo built the kernel with zRAM support which is a technology included in Linux that reserves space in RAM to quickly compress and uncompress pages of data exceeding our physical amount of RAM installed (2 GB). This is not Virtual Memory as in a swap file/partition or Windows' Page File inside storage media. zRAM literally reserves a fixed amount of physical RAM space (blocks) to expand it by compressing data. The consequence is you loose "fast RAM" (THE RAM) and gain some "slow RAM" (the zRAM). You also sacrifice some CPU power to compress/decompress data and, with this, some battery juice is also lost.
That does not sound like a terrible trade-off for a RAM-limited device, one would think. Another interesting thing would be WHEN to send this piling data in "fast RAM" to the compressed space and WHEN to get it back. Two parameters control the WHENS, one is called "swappiness" (when to send it to the compressed space, the "slow RAM") and the other may be the "vfs_cache_pressure" (when to uncompress it and send it back to the "fast RAM"). And this is where the main problem is, really, because the kernel, Linux, is pressing the RAM constantly to send some less prioritary data to "slow RAM" and, at the same time, is trying constantly to send compressed data back to the "fast RAM". Summarizing, this kernel behavior is practically minimizing the fast RAM amount and usage while maximizing the "slow RAM" usage. This is nuts, by default a swappiness and a vfs_cache_pressure of 100 are not even default for servers, these parameters extremely prioritize that processes can get done no matter how slow they get, and they are even more nuts when Android is designed to work without swap space.
What that free command is telling us is the tablet is using the "slow RAM" even when we only just turned it on. Fortunately there are two ways to fix this problem: one is to completely disable zRAM, the other one is to use ZRAM a whole lot less by tweaking the swappiness and vfs_cache_pressure parameters. This can be easily done with the following sentences in a rooted tablet:
Code:
# echo 5 > /proc/sys/vm/swappiness
# echo 50 > echo 5 > /proc/sys/vm/vfs_cache_pressure
Or, to regain the whole fast RAM:
Code:
# swapoff /dev/block/zram*
One caveat of the first method, reducing swappiness, is there is still a lot of RAM (one quarter of the whole RAM in a 2 GB device) reserved as "slow RAM".
SOME ROMS DID NOT ENABLE KERNEL SAMEPAGE MERGING, UNFORTUNATELY
Additional to the sorry implementation of zRAM, some firmwares support a fabulous Linux tool to reduce RAM usage called Kernel Samepage Merging (KSM) but they don't use it by default. This software runs at kernel level, so, it really is CPU-wise inexpensive and, opposite to zRAM it can actually recover some RAM usage by reducing the amount of data flagged as redundant in physical RAM by merging it. KSM is good for you and you should have it always enabled by issuing the following command as root:
Code:
# echo 1 > /sys/kernel/mm/ksm/run
STOP WRITING AND FIX MY RAM! PLEASE!
Well... are there any people interested on this? With the above information you can write a script to execute at boot. Something like this should work in any version of the firmware:
Code:
#!/system/bin/sh
# Mount system as rw
busybox mount -o remount,rw -t auto /system
# Tweaking swappiness in zram
echo "5" > /proc/sys/vm/swappiness
echo "50" > /proc/sys/vm/vfs_cache_pressure
# Activating Kernel Samepage Merging
echo 1 > /sys/kernel/mm/ksm/run
# Remount system as ro. noatime option for faster and volatile system
# busybox mount -o ro,remount,noatime /system
busybox mount -o ro,remount /system
exit 1
Or, you can unpack the boot.img and modify the init.cht_ffd.rc (lollipop) or the init.r2_cht_ffd.rc (marshmallow) files to write these values as default... or, if there is interest for something easier, I can produce this boot.img files for you to flash using fastboot.
ROOTING THE LENOVO YOGA TAB 3 PRO (YT3-X90[FL])
Here I am not gonna write a lot. Instructions were given in this thread. I'd only recommend to put vm.targetutilization at 0.8 top 0.85 in system/build.prop
After rooting, debloat your firmware. I use the app "/system/app mover" from Fdroid to convert to user apps and uninstall them. Also, if rooting is not your cup of tea, you can install AppOps software to freeze all those apps that you don't use regularly. Also, I couldn't patch my services.jar for Signature Spoofing with Nanodroid patcher in the most recent lollipop firmware, but it did work in Marshmallow... anyway I'll do it manually.
ARE YT3-X90F AND YT3-X90L FIRMWARES INTERCHANGEABLE?
I own a WiFi only device (YT3-X90F) so I can't assert they are interchangeable. If I owned the LTE version and use a WiFi firmware I would expect to loose LTE functionality. Now, on the other direction is more interesting because I've been using a LTE firmware version for weeks (as a matter of fact, the one joesnose linked in his How-To debrick this tablet, flashed with the instructions I posted for advanced users it even updated to recent 2020 firmwares). The only tweak you need for this to work well is to add "ro.ril.disable=1" in the build.prop file. So, yes, firmware for the LTE version work in the WiFi version but kind of not vice versa.
Spoiler: YT3-X90(FL) UN-DEVELOPMENT
No news here. All capable people interested on developing for this device are all done with Lenovo and their attitude against Open Source. Don't expect your situation to change.
I'm happy to know there are still a couple of developers interested on this device. I won't cite them by linking their names but they are OOEvil and alquez, the first guy is trying to make a Generic System Image (GSI) ROM compatible with our tablet, I don't know the details so I wouldn't go further. Alquez has been active in this thread and, while he is trying to figure out how to build a kernel, he believes the best way to start having some alternative to official Lenovo firmware is by using a firmware kernel (a prebuilt kernel) to, first, build a more up-to-date TWRP recovery.img and from there try to build CyanogenMod 13, which was based on Android Marshmallow 6.0.1. My guess is newer Android versions wouldn't work if we can't build the kernel from source.
PHOTO ALBUM OF YT3/X90Y BIOS
This photo album documenting every screen option in the BIOS of the Yoga Tab 3 Pro may or may not help someone, but it contains a lot of useful hardware information and guidance for those attempting to boot something else than the original Android 5 or 6 firmware. Using this options, that are accessible through F2 at boot with an attached USB keyboard, you could try Linux distributions on the tablet or even attempt to run Windows, @alquez informs it works fine with a recent distro but the mainline kernel is lacking touchscreen and battery support. This is absolutely his work and he asked me to share it. I hope it serves someone. It is hosted in a rather obscure website but it was the only reasonable placeholder I could find for the 321 photos.
Hope this helps someone, I just didn't want to keep it to myself. Have a nice day!
Just remember, if your tablet is 3G capable I strongly suggest that you modify the line "ro.lenovo.tablet=wifi" to "ro.lenovo.tablet=3gdata" and remove the line "ro.radio.noril=true" to your build.prop file in /system. To do this you can use the section Build.prop Editor of the Kernel Adiutor app or you can do it manually if you have already a method to modify system files. If you do not use mobile data at all, you may leave the build.prop as it is, you'll save a lot of battery by using only wifi.
Spoiler: Some old info here, but maybe useful
ONLY FOR TESTING: Cooked ROM, newer TWRP and tweaked kernel
ONLY TRY THESE FOR TESTING PURPOSES, THE TWEAKS ARE ALL SAFE TO USE BUT ONLY FLASH FOR TESTING PURPOSES, PLEASE. FIRST, TRY TO USE FASTBOOT TO BOOT THE boot.img FILE WITHOUT FLASHING: IF IT BOOTS GO AHEAD AND TRY THE OTHER FILES (fastboot boot boot.img). THE TWRP IS NOT AS STABLE AS THE OTHER ONE HERE AT XDA BUT ALLOWS TO USE ZIP COMPRESSION IN BACKUPS. I AM NOT GONNA BE AROUND. IF YOU TRY SOMETHING MAKE A BACKUP FIRST. THIS DEVICE IS MESSY AS F*CK.
Spoiler: Some old info here, but maybe useful
I wrote a very detailed guide about these files I uploaded to my Nextcloud that include the newer TWRP-3.0.2, a TWRP flashable Cooked ROM and a separate kernel (boot.img) in case your system is already setup, but the post went to some XDA void and didn't upload. These are based on the YT3-X90L latest firmware, but they work on the X90F model too. The TWRP should work with Lollipop and Marshmallow firmwares.
I can't write everything again, so, the kernel contains better management of RAM and emmc (internal) memory, a 256 MB zRAM space instead of 512 and a more conservative approach to LowMemoryKiller.
The cooked ROM includes the described kernel and debloated apps, it's already rooted with Magisk (you can unroot with Magisk Uninstaller), an updated Busybox build, su.d support (I plan to use it with AFWall+), zipaligned apps, etc. It is for the X90L but possibly works for the other Yoga Tab 3 Pro models. It works for the X90F but it will reboot once after the first boot because the RIL configuration times out. To install the cooked ROM you need to:
0) Know that by doing this you will loose pretty much everything in your tablet. You start from scratch if everything goes smooth, if not you could possibly end up with a system without an OS. The usual stuff when you are customizing your system.
1) Boot into TWRP and make a Nandroid backup. IT IS IMPORTANT because @joesnose had problems with a "random reboot" and lost Bluetooth/WiFi after it. I am trying to look into this. The only difference is his tablet has 4 GB RAM and probably a different firmware.
2) Wipe cache, Dalvik/ART, System and Data in TWRP - Wipe, Advanced Wipe menu. If your tablet is encrypted, or in factory firmware you also need to explicitly use the button "Format Data partition" and confirm writing "yes" in the format procedure prompt. You will loose any configuration made to your tablet.
3) Install the superr_stockMM.zip wich is flashable by selecting the file from your Internal tablet memory, using the Install button in the main TWRP interface.
FOUR IMPORTANT NOTES TO COMMON ISSUES:
If you come from a stock firmware your data partition is encrypted. You need to pass a blank password in TWRP to continue to use the custom recovery. You also need to format data partition before flashing the cooked ROM.
If your tablet is WiFi-only I strongly suggest that you modify the line "ro.lenovo.tablet=3gdata" to "ro.lenovo.tablet=wifi" and add the line "ro.radio.noril=true" to your build.prop file in /system. To do this you can use the section Build.prop Editor of the Kernel Adiutor app or you can do it manually if you have already a method to modify system files. In Lollipop firmware you use "ro.ril.disable=1" instead of "ro.radio.noril=true" to get the same effect: sort of a conversion to WIFI-only tablet from LTE models. I'd argue this is useful to do if you are gonna be without LTE connection/service for long periods of time and I can think a couple of other uses.
Do not use stock Lenovo launcher unless you uninstall Magisk... they are incompatible for reasons I don't care to know and the Launcher will constantly FC (it is a pain in the arse).
If you are still expecting better performance I am sure there are some tweaks left in RAM management but it wont go too much further in 2 GB devices. Instead, you may consider to lower your display resolution and pixel density to something reasonable as 1400x2240 or even 1200x1920 maintaining the same aspect ratio. To do this you do not need to have root but you need to interact with the tablet using ADB. First change the size of your display:
Code:
adb shell wm size 1400x2240
Then adjust your density:
Code:
adb shell wm density 260
If still is not enough you can go even further with 1200x1920 and 224, use the same method to go back to stock with 1600x2560 and 300 to 302. This won't need a reboot but will probably cause an inconsistent UI that will lead to FCs and random reboot. You can just reboot after applying these tweaks. Unless you are really sight-gifted you won't notice a lot has changed but you will be dealing with 2.x Mpixels instead of 4.x Mpixels and that will help with your overall performance as well as your battery life sacrificing a pixel count that most of the people wouldn't even notice. If you did this correctly, in the next boot sequences you'll notice an offset on the Lenovo orange logo.
It is important to say that your display supports 1600x2560 pixels physically, but I'm assuming the GPU has no dedicated RAM and uses the device's, so, by reducing the quantity of pixels the GPU needs to deal with, the pressure on the device's RAM is also reduced.
EXTRA TIP: If boot annoys you just delete /system/media/boot.wav, bootanimation.zip and shutdownanimation.zip and you'll get a silent boot and the generic android boot animation.
Hope you enjoy your tablet!
TWRP-3.0.2.0- BETA: Again, this is not a flashable zip. Uncompress first and test the recovery system using "fastboot boot twrp_yt3-x90f_beta.img". If everything works for you, you may want to flash it permanently rebooting to bootloader and flashing with "fastboot flash recovery twrp_yt3-x90f_beta.img". Remember I did not test this in Marshmallow yet.
FEATURES:
- Fixed RAM issues (swapiness 10, vfs_cache_size 50 and disabled dynamic low memory killer tweaks and minfree values).
- Reduced zRAM size to only 256 MB.
- Tweaked interactive CPU scheduler to use other than min and max frequencies (but still responsive). The tweaks are based on the Advanced Interactive Governor Tweaks Guide. This may save battery life.
- Max frequency capped to 2.08 GHz (this is not great if you are a gamer). This tablet throttles when using max frequency for a long time, so, to save battery and keep it cooler I tweaked the CPU to run slower.
- Tweaked I/O schedulers to use deadline governor and read ahead cache to 640 kb (used benchmarks to get to this value).
- Force encryption disabled (to avoid applying ionioni script after flashing). Still needs to format data partition. You can encrypt your data partition later through Configuration -> Security user interface.
- Implemented native init.d support (not su.d anymore and no need to root the main OS).
- Busybox updated.
- Rooted with Magisk by default ( you can use Magisk uninstaller to unroot).
- Debloated apps. I also deleted Lenovo User Experience Program which was asking for root privileges even when you don't opt in to the Lenovo UE Program at setup wizard. I find this behavior shady.
-Multi-window mode is available in Developer Options and needs to be activated by you. In this mode if an app is compatible with multi-window mode you can double-tap on its title bar to enable Window mode. This function was more transparent in Lollipop firmware but it is still there in Marshmallow firmware if you change the build type to userdebug instead of user in build.prop (that's how I enabled it in the Cooked ROM).
- There are also other tweaks in VM and KSM.
And that's it, I'm not trying to change a lot, only the fundamental issues. But I suggest some other tweaks up there.
Such a shame. I love my Yoga Tab 3 Pro. Great hardware. But the software. Thanx anyway for your work.
Very nice write up. Thanks.
joesnose said:
Very nice write up. Thanks.
Click to expand...
Click to collapse
You're welcome. Thanks to you, while learning about this hardware your username pops everywhere.
jahfaby said:
Such a shame. I love my Yoga Tab 3 Pro. Great hardware. But the software. Thanx anyway for your work.
Click to expand...
Click to collapse
It really, really sucks. Let's hope something interesting happens after these strange and recent updates.
CENTSOARER said:
V1: The zip name boot_mod_mm.zip is based on the latest boot IMG provided by Lenovo. You need to first uncompress and flash it using fastboot (this is not a TWRP flshable zip). If you are uncomfortable flashing, you can test it only by issuing "fastboot boot boot_mm_march20_mod.img" once uncompressed, or, if you feel fine using it you can flash it permanently by using the command "fastboot flash boot boot_mm_march20_mod.img". This boot IMG will only work with Marshmallow firmwares in both YT3-X90(FL).
FEATURES:
- Fixed RAM issues (swapiness, vfs_cache_size and low memory killer tweaks).
- Reduced zRAM size to only 128 MB.
- Tweaked interactive CPU scheduler to use other than min and max frequencies (but still responsive). This saves battery life.
- Max frequency capped to 2.08 GHz (this is not great if you are a gamer). This tablet throttles when using max frequency for a long time, so, to save battery and keep it cooler I tweaked the CPU to run slower.
- Tweaked I/O schedulers to use deadline governor.
- Force encryption disabled (it's unnecesary to apply ionioni script now). Still needs to format data partition. You can encrypt your data partition later through Configuration->Security user interface.
Click to expand...
Click to collapse
Thanks for this. Going to take it for a spin.
joesnose said:
Thanks for this. Going to take it for a spin.
Click to expand...
Click to collapse
Please, please provide feedback and don't forget to wipe caches.
alquez said:
"No news here. All capable people interested on developing for this device are all done with Lenovo and their attitude against Open Source. Don't expect your situation to change."
https://github.com/intel/ProductionKernelQuilts this repository containts patches necessary to create base 3.14.55 and 3.14.64 uefi/cht-m1stable kernel tree. The same tree that was butchered by Lenovo in their OPEN_SOURCE "release".
Check this file https://github.com/intel/ProductionKernelQuilts/blob/master/uefi/cht-m1stable/ChangeReport.md and the WW24 part in the "YT3-X90F_ENG_S100265_1601281130_WW24_ROW" will become more clear
Quilt manual: https://elinux.org/images/7/74/Maintaining_Multiple_Android_Linux_Kernels_at_Intel.pdf
If someone would be looking for a good piece to start: the best would be to recreate 3.14.55 or 3.14.64 from the quilts, use the x86_64 defconfig and build a kernel which can be booted. In order to test this, the best solution is to repack TWRP with the new kernel and do "fastboot boot" without flashing, until it boots and the touch screen is working. There's no other way i'm afraid.
I have prepared complete photo documentation of UEFI Bios, i can share, currently moving to different google photos account. Its over 300 photos.
Please, set up a Discord channel if you want to proceed. The first month will be quite boring and daunting because it's going to be build -> repack -> boot -> rant
Click to expand...
Click to collapse
In my defense, when I wrote that sentence was after taking a peek on your github profile, I figured you were just done with the Yoga Tab 3 Pro. I am really, really glad you're still trying and I recognize you are very capable of changing things for this device. I appreciate the sources you link but I am afraid I am useless as a developer, partly because of a lack of time and partly because of a lack of adequate training. I will try to help as much as I can, though. Thanks for the post.
alquez said:
No worries, however if anyone is interested how to actually crunch this one: we have a working prebuild kernel which can be pulled of boot image, and we have a working TWRP, however it looks like TWRP wasn't actually built from source, but cooked using android kitchen so we're still missing a device tree, which in my opinion is a good place to start, because you can use prebuilt kernel to build recovery and lineageos/aosp (it's deprecated but we're talking about android 6 aka cm-13.0/lineage 13.0). If I can create a most basic device tree which is capable of building recovery from scratch useing binary kernel and modules, i'd say were' good, because the next part would be adding more binary blobs from the official software, and we can skip the kernel source part for now until we have lineageos build 13 working). I started experimenting on xiaomi latte tree because it wasnt split like Z00A. It's not gonna be a proper port but it should work from now (i think)
@joesnose did you cook or compile TWRP? It's important
Ok, I'm at the stage i have two folders. The one is unpacked working TWRP, the other one is unpacked compilation i'm building, which means im able to build TWRP from source with binary kernel, but it's not working yet. The goal is make the left one look like the right one by adjusting various parts in BoardConfig.mk and copying files.. If someone has right partition sizes for BoardConfig.mk that would be really helpful, the values i calculated suck and don'y boot yet
Click to expand...
Click to collapse
Uhmmm, I've been there and took some notes with some "GNU shell Fu". What sizes are you using right now?
And regarding the WW part of the name I've noticed the recent updates are marked as WW17 opposed to WW28 which was the latest stable with any changes. Any idea why Lenovo used WW17 to update the Yoga Tab 3 Pro recently?
alquez said:
update, ive managed to boot vanilla android-x86 x64 6.0.1 build without touching the kernel yet and different TWRP (3.1.1.0) with kernel swap
Click to expand...
Click to collapse
Geez, I was excited because I read Ubuntu booted on this hardware but then I realized it was the Yoga 3 tablet but not the Yoga Tab 3, goddamnit. Keep up the good work!
alquez said:
Um Ubuntu 20.04 boots with working accelerometer so the screen rotation works + wifi, and probably audio i forgot to play youtube video, the stuff missing is battery, touchscreen and projector.
To test it you need to connect a usb hub using usb otg, put ubuntu and a keyboard in the hub, boot, and press f2 really fast if you haven't enabled slow boot yet. You can even boot
Xubuntu to ram and remove flash drive. It's a pc architecture after all and most of the processor related stuff is in the linux mainline since 4.11
Recently i was checking why the Windows 10 installer crashes on ACPI Error.
Click to expand...
Click to collapse
Oh, I will have fun doing this kind of stuff at the end of the year. It must run swiftly with i3, provided you won't get touchscreen support.
alquez said:
Geting TS and a battery running is a mandatory, the next is the projector. The rest is pretty much working. I'm building generic celadon x86 atm and the beast is huge it's like 18% now after two hours on -j8 on i7. Maybe we can give this old monster a new life
edit:
And i need to add 480gb drive ;/
Code:
/dev/sdc1 229G 210G 6,7G 97% /home/android
Click to expand...
Click to collapse
I am afraid those are the peripherals that will keep you in 3.14.55/64 Linux, at least for a while , unless you know something more (wouldn't be surprised).
Are those GB for source code or for cache? Both? Jesus... the thing is huge but reading the unpacked boot.img makes much more sense now.
It was ionioni who made the twrp for the device. I dont have the foggiest how he did it.
---------- Post added at 01:23 AM ---------- Previous post was at 01:18 AM ----------
Wow! I missed lot, looks like you have made some serious progress here. very well done.
alquez said:
I contacted my friend and he told me to compare these two folders:
https://github.com/alquez/lenovo_yt...l/cht/arch/x86/platform/intel-mid/device_libs
https://github.com/torvalds/linux/tree/master/arch/x86/platform/intel-mid/device_libs
the new files in "lenovo tree" are the modules we're after, mostly and it's a place to start
I need to ask inioni about twrp.
Click to expand...
Click to collapse
I will guess it was ported from the Yoga Tab 2. I will edit this post soon.
alquez said:
Nice! There's big chance the modules are reused somewhere. We can compare these. I think the two folders in
https://github.com/alquez/lenovo_yt3_x90_osc/tree/master/kernel/cht/drivers/input/touchscreen
which are missing from vanilla tree are two separate drivers and one is for "any pen" driver. Can you ask someone porting modules recently
to help us refresh my memory
[edit]
I've got in touch with TeamBliss of BlissRoms , they are working on cherrytrail tree
Click to expand...
Click to collapse
Nah, I couldn't confirm it was ported. A lot of posts were removed when XDA enforced the GPL measures to its developers.
About BlissRoms, it just makes sense they are working on Cherry trail. I hope you and those guys can achieve something soon. I mean, it's a 2 GB RAM device but the display, projector and dolby audio system are worth for a better fate than Lenovo's plans.
alquez said:
4GB of ram 4 cpu cores, Hardware virtualization support, fast gpu and fast emmc memory. It's a beast, way ahead of it's time.
Click to expand...
Click to collapse
Well, I have the 2 GB RAM model, so my expectations are conservative. Anyway, don't believe I'm a hardcore user, so it's plenty enough for me, considering I won't even flash Google apps. I am now settled with Lollipop, since I need apps not getting killed by damn Doze. It is a shame how OEMs can limit a device like this one. Crond, init.d, bad zRAM, shell, even busybox... frequently the OS is crippled. I read somewhere Doze can be disabled in build.prop or something but one thing I just hate is the recents screen in Marshmallow firmware (my God, is terrible!) and can't be easily changed for something like OmniSwitch. I mean, for a mobile device you have an unusual architecture, why limit it further? Damn, I wish BlissRoms come up with a working build.
Hey, @alquez, have you tried Linux 5.7 on the tablet? I saw this article and seems like the touchscreen may work with the next mainline kernel release. I mean, right now is on RC7, should be stable enough to compile and try (I'd try it, but can't get to my workstations thanks to the virus).
EDIT: Ah... I was looking into my device and it comes with a HiDeep touchscreen (cat /dev/input/event3), the linked news is for the Goodix driver / devices. At least, I guess, it will attract others to this platform... anyway, I was wondering and also confused, shouldn't touch screen work with the hideep driver using this config already?
Thanks for the new feel.
This is great, glad to see a developer picking up this tablet. It's a fine machine with an unfortunately small user base and has never really seen any development apart from ionioni s efforts and he didn't even own one, lol.
Edit: *Thank for the new twrp * auto correct!
I love this device! For me it's the perfect device for vacation just because of the projector!
I am so happy that you guys are working on it again. the ram and display tweak works like a charme for me. Had to reset my background screen though
thx for all your help. As soon as you guys have light rom, i'll install it on my 2GB device.
hello how to flash your twrp please ?
can someone upload adb drivers for the yt3-x90f please ? because i try to flash in dnx fastboot mode but commands don't work, even "fastboot devices" don't show me the yoga tab 3 pro

Categories

Resources