I received the OTA update yesterday but haven't tried to apply it since I have a custom recovery installed. You should also know that I removed a file called recovery-from-boot.p to avoid the stock recovery from getting reflashed following the indications in this thread -nexus-development/189062-using-rom-manager-only-way-boot-into-clockwork-mod-recovery.html
I'd like to apply the OTA without losing my data and possibly not root. Losing root is not such a big problem but if you know a way of installing the 4.3 update from CWM without losing data then I'd be so thankful!
You shouldn't lose any data by flashing the OTA file. You can flash the ota file (see AndroidPolice for info and where to download it from) and as long as you've not changed any system files it should apply ok. Simply select the "apply update from sdcard" option and select the update file. You will lose root but you can simply flash SuperSu (the only superuser app that works on 4.3 at the moment) which will "re-root" your device. If you get a prompt about disabling recovery flash, select "No" as the new SuperSu uses this part of getting root access.
I'm trying to do kernel debugging for my Nexus One, and have been following instructions from :kgdb. I was wondering if someone has actually got this to work? And has anyone done a more up to date solution for using KGDB to debug the kernel?
I found this post when I was looking for information of KGDB on Android so, despite it being a few years old, I thought it worth posting a link to some work I did to get this up and running on the Nexus 6.
So at this point some relatively minor changes are required to the Nexus 6's serial driver (msm_serial_hs_lite.c) to support KGDB (specifically, the ability to perform atomic character I/O operations). I just ported these changes from the Linux Kernel mainline code as a chap called Stephen Boyd had done the hard work to the full MSM (Qualcomm) serial driver msm_serial.c. His changes can be found here or just search for "msm_serial: add support for poll_" on Google. The port wasn't difficult and my code can be found on github.
Aside from that you need to be able to build a custom kernel for your N6 which google provides lots of information on. You then need to create a boot image which contains the KGDB modifications in the github repo. I took the stock kernel from , extracted it (using abootimg -x) and then used the following command to repack it with my custom kernel (zImage-dtb) and additional command line params to ensure KGDB would be loaded and point to my serial port like so:
With the phone halted, and your debug cable connected, launch a version of GDB for ARM on your host PC with your uncompressed kernel as an argument (e.g. arm-eabi-gdb ./vmlinux). Note: I'm running Ubuntu 14.04 and using arm-eabi-gdb from the 'prebuilts' directory in my AOSP source repository. Finally, enter the following commands:
I know that you've already asked a question at the Android Kernel Dev list and got no answers, but did you search through the archives for posts about kgdb and debugging?: -kernel/search?group=android-kernel&q=kgdb&qt_g=Search+this+group
Anyhow, this is an interesting question, and I'm really having a hard time finding anything on it. You might want want to try hopping on IRC sometime (#android-dev or #android-root on freenode) and asking some people there for pointers (please post up what you find here), or maybe asking on the xda-developers Android forums.
Straight out of the box, the Nexus 5 is an awesome device, but even it can be faster with better battery life. Luckily, one of the things that makes it so awesome is that there are tons of developers creating mods for it, since it runs stock Android by default. When it comes to gaining speed and better battery life, flashing a custom kernel is the way to go.
It has a wide feature set, ranging from overclocking and undervolting to custom wake gestures like knock-to-wake and swipe-to-sleep. Battery life improvements and a whole host of under-the-hood tweaks make this the go-to custom kernel for most modders. For this how-to, I'll guide you through installing the kernel and how to get the most functionality out of it.
Make sure you have all the requirements met before you continue on with this tutorial. You must have your bootloader unlocked with TWRP (or another custom recovery) installed so the custom kernel can be flashed.
A kernel is essentially the central nervous system of your phone. Whenever anything is done, like turning down your screen brightness or making a call, Android talks to the kernel and then it connects it to the phone's hardware.
A custom kernel has been modded with additional features and speed improvements not found on stock versions. They are usually made using Google's own source code released to developers, then built with mods added in.
If you're running stock, boot into TWRP manually by turning off your phone and then pressing Power + Volume Down to get into the fastboot menu. From there, press the Volume keys until Recovery mode is chosen, followed by the Power button.
Now that you have a backup made, it's time to download ElementalX. If you're running a stock Android 4.4.4 ROM like I am, download the latest version by tapping here and choosing the latest update under Stock/AOSP.
I recommend the version without "express" in the file name, so that you can customize the kernels settings while installing. If you want a quick-and-easy install without having to pick and choose settings, then download the express one.
If you have CyanogenMod installed on your phone, download the latest update under Cyanogenmod/CAF. With CyanogenMod being the exception, most custom ROMs will use the custom kernels listed under Stock/AOSP. To find out which kernel applies to your Nexus 5, look for the words AOSP or CAF in the release thread on XDA for your custom ROM.
In this step, we'll be adjusting the CPU settings to speed up your Nexus 5, along with improving battery life. Below are images of the three menus we'll be working with, which correspond to the sections below.
Thermal throttling is the amount of heat that's allowed by the CPU before it lowers its clock speed to cool down. What this means is more cooling leads to slower speeds, while less cooling will have higher performance.
In this menu, you can overclock (make your CPU run faster than normal) or underclock (make it run at a slower speed). Overclocking will increase speed, but drain battery faster. Be careful with overclocking because choosing too high of an overclock will lead to random reboots and crashes, so don't automatically pick the fastest speed at 2957 Mhz. Underclocking on the other hand will save battery, but your phone runs slightly slower.
In this menu, you can lower the amount of power that a CPU core uses. This can help with battery life, but not all phones are the same and can be undervolted. I always leave this at the default level, but try out one of the other settings on your phone. If your phone is unstable afterwards, just reflash ElementalX kernel and choose Stock.
I/O scheduling is how your phone manages processes and user requests. Processes are random, so I/O scheduling is a way of managing and ordering them. I recommend just the default setting by ElementalX.
Buffer readahead is how much data your phone reads ahead of time so that it can be retrieved quickly. The default 256 setting is fine, but I usually like 512 for helping my phone play music off the SD card faster.
Custom wake and app gestures can be set by choosing Wake Gestures support and installing an additional Xposed module. If you enabled this setting, scroll down for how to fully set this up (after Step #7).
Check all the gestures you want enabled in the kernel. If you'd like to have haptic feedback (a small vibration) when you do a gesture, enable it here, too. In the next screen, leave the S2W/DT2W timeout settings alone and tap Next.
This will put your phone to sleep by swiping across the on-screen navigation buttons. Unlike Sleep2Wake or DoubleTap2Wake, this does not cause battery drain. I find myself using this feature a lot, so enable it and give it a try.
If you find your Nexus 5 charges too slowly with some power adapters, this allows the phone to draw more power from USB to charge your battery faster. Just a warning, this may reduce the life of your battery, but I haven't noticed any problems yet.
Enabling exFAT support will allow your phone to read and write to exFAT filesystems. Windows has support for this and some USB drives are formatted as exFAT. If you have a USB OTG cable, connecting your exFAT formatted drive to your phone can now have files read and written to.
Fsync is a process where data is buffered ahead of time in case there is a crash, but it slows down your phone. Disabling fsync puts your phone at a slightly greater risk for data loss if it crashes, but I haven't experienced issues leaving this off.
Now that we have gone over all of ElementalX's kernel settings and features, you can now Install ElementalX to finish up the process. When finished, you'll be sent back to TWRP where you can select Reboot System.
For those who enabled custom wake and app gestures in Step #5, here's how to set that up. You'll need to have the Xposed Framework on your phone, so if you don't have it, click the link back at the top of the page to get that done.
Once you're booted back up, open your app drawer and launch Wake Gestures. Now, it's as simple as picking and choosing which gesture does what. I like to have Google Play Music launch with the swipe up gesture and skip tracks with the left-right gestures. Having double-tap set to unlock makes getting into my phone a breeze.
To get this done, download and install DriveDroid from Google Play. Developed by Softwarebakery, it allows your phone with a supported kernel to be used to boot CD images with a computer.
b1e95dc632