September 23, 2013 By: Will Verduzco
Blob files for Nvidia Tegra-powered Asus devices are incredibly useful. This is because they allow us to easily flash images to our devices using Nvflash at an extremely low level.
Given the low level at which APX (Nvflash) mode runs and how this is much more primitive than booting into a standard Android recovery partition, a device with the appropriate blobs is practically unbrickable. Thus, blob files can be used to get us out of seriously sticky situations that would otherwise be unrecoverable without major device surgery.
Naturally, you’d want to have the appropriate blobs for your device just in case anything goes wrong. Thanks to XDA Recognized Developer rayman (and the rest of the crew on the AndroidRoot.mobi team), this is now possible on the (original) Google Nexus 7, as well as the Asus Transformer Prime, TF300T, and TF700.
Flatline creates these blobs for the aforementioned devices. A custom recovery image is used to flash a custom bootloader, as well as to generate the appropriate blobs. This solution is unique from other Nvflash solutions in that doesn’t require a working /data partition for image storage. Rather, blobs can be retrieved from /tmp/AndroidRoot, as explained in the guide linked below.
You can get in on the discussion by visiting the original thread. To go ahead and get started on your own device, visit the developer team’s full guide, complete with modified recovery images and all other required files.
[Thanks to OEM Relations Manager jerdog for the tip.]
August 22, 2013 By: Will Verduzco
Not too long ago, we brought you news of the Nexus 7 (2013) Factory Image situation and the drama that ensued. Luckily, it wasn’t too long before the world was made right once again, and the factory images and driver binaries for the device were released. For those keeping track, this was build JSS15J for the 2013 Nexus 7 and JWR66V for the rest of the current Nexus stable. Now, a new build has emerged, and it is build JSS15Q for the 2013 Nexus 7 and JWR66Y for the others.
So what does this update bring? This is essentially a minor revision for the Nexus 4, 2012 Nexus 7, Nexus 10, and the GSM Galaxy Nexus. Aside from a security fix and some camera, NFC, and auto-brightness tweaks, not much has been changed. However, if you’re currently using the 2013 Nexus 7, you’re in for a treat. In addition to the above changes, the latest update supposedly fixes the GPS and multi-touch issues experienced by certain users. Also of note is that driver binaries are now available for the Verizon Galaxy Nexus running 4.3 JWR66Y, which bodes well for a firmware update in the near future.
To learn more about the changes made on the 2013 Nexus 7 build, head over to XDA Recognized Contributor sfhub‘s original thread. To get the goods on your own Nexus device without the wait, head over to the Nexus Factory Images page. Finally, if you wish to build your own ROMs from source for your Nexus device(s) and want the latest driver binaries, head over to the Nexus Driver Binaries page.
Did this update fix your 2013 Nexus 7′s GPS woes and erratic multi-touch? Let us know what you think of the updates in the comment box below!
August 2, 2013 By: Jimmy McGee
If just having the latest Android 4.3 wasn’t a good enough reason to upgrade, Android 4.3 has TRIM support! That and more are covered by Jordan, as he reviews all the important stories from this week. Included in this week’s news is an announcement that CyanogenMod Team has realeased Focal from Project Nemesis and some forums were added for the Nokia Lumia 1020 and the Huawei Ascend P6.
Jordan talks about the other videos released this week on XDA Developer TV. XDA Developer TV Producer Kevin released a video showing how to root the New Nexus 7 (2013), and later he compared the Old Nexus 7 to the New Nexus 7. TK then showed us everything we needed to know about the new Google Chromecast. Also check out Jordan’s Nvidia Shield unboxing video and gameplay video. Pull up a chair and check out this video.
Yesterday, XDA Developer TV Producer Kevin showed you how to root your New Nexus 7 (2013). With everyone excited about the new version of the Nexus 7 device and a version of Android 4.3 available for the Old Nexus 7, Kevin thought he would compare the two. Two Nexus 7 devices enter the cage; only one will exit.
Kevin presents side-by-side comparisons of the New Nexus 7 (2013) versus the Old Nexus 7. Kevin compares gaming performance, web browsing performance, video performance, and more. Check this video out to find out whose cuisine reigns supreme.
July 31, 2013 By: Will Verduzco
Android 4.3′s launch last week has been nothing short of an almost resounding success. Why “almost?” Well, aside from a few issues with copy/paste, most users seem to be quite happy with the latest iteration of Jelly Bean. This level of user satisfaction is to be expected, as the latest flavor of Jelly Bean brings added performance, improved API support, additional functionality, and a few other features. One of these “other features,” however, is quite important for those of us who frequently transfer massive amounts of data to our devices such as media content and other large files.
Of course, as you might expect, I’m talking about how 4.3 also brings TRIM support to all Nexus devices. Anyone who has ever experienced a massive device slowdown after transferring large quantities of data to and from a NAND device knows what I’m talking about. For a very practical example, one need only look at Google’s original Nexus 7. Back when it first came out, reviews for the popular device nearly unanimously praised it for its high level of performance. However as time went on, most users seemed to notice a rather sharp I/O performance decline. This lead to an overall feeling of sluggishness when using the device, making the once fast tablet almost unusably slow for some. This issue seemed to affect those with lower capacity models more severely, or at least more quickly, than those with the 32 GB model. As you would expect, this was largely due to TRIM not being enabled in previous builds. This then prevented the scheduling of NAND blocks for garbage collection, making rewriting data to these blocks significantly slower. (Note: Traces of TRIM were added back in the Nexus 7 4.1.2 builds, but the current consensus is that it wasn’t actually enabled until 4.3.)
Looking into the Android Git, one can readily find the modifications to Android’s volume daemon (VOLD) to enable fstrim. The next step is determining when exactly fstrim runs. As exposed by some detective work by Brian Klug over at Anandtech:
I’ve learned a bit more on the conditions underlying when Android 4.3 will TRIM filesystems, as it wasn’t completely clear before. The Android framework will send out a “start idle maintenance window” event that the MountService listens for, and then invokes vold to fstrim filesystems when a few conditions have been met – the device hasn’t been touched for over an hour, no idle maintenance window event has been sent in 24 hours, and the device is either off-charger with 80% battery or on-charger with 30% battery. The goal is to have fstrim run roughly once every 24 hours if you’re in the habit of plugging the device in to charge every night.
Fstrim sends the FITRIM ioctl() command to all writable filesystems when invoked, which discards (TRIMs) blocks on the eMMC not used by the filesystem. Without TRIM the controller will track blocks that have data deleted by the filesystem, but the controller still believes has data it needs to track. TRIM is the signaling pathway through which the filesystem and OS can tell the controller that it can now consider those blocks unused and for garbage collection – different controllers will behave differently since it’s their prerogative to decide what happens next however.
In other words, if your device is idle and plugged in for over an hour, it will run the “start idle maintenance window” event. However, this will only take place if the “start idle maintenance window” event hasn’t been sent in the past 24 hours, and if your battery level is either greater than 80% or you are plugged in and have greater than 30% battery. Another way to invoke TRIM is to use a frontend for the fstrim utility and force TRIM to be executed using an app such as XDA Senior Member AuxLV‘s Lagfix application.
All of this is unimportant without tangible performance gains. So what can you expect from 4.3 in terms of I/O performance? Over the next couple of days, I set to find out on two daily use devices. I’m going to be running tests using Androbench Storage Benchmark before and after upgrading from official JDQ39 (4.2.2) to official JWR66V (4.3) on my personal Nexus 7 (8 GB) and Nexus 10 (16 GB). Both devices have received heavy usage, with much data being transferred to and from the devices, and about as many deletions. After the “after” tests are run, I will then root the devices and use the LagFix fstrim frontend to force TRIM manually and rerun the benchmarks. Stay tuned and keep checking the Portal for updates!
July 24, 2013 By: Will Verduzco
We were all expecting it. In fact, we’ve all been waiting for it ever since this year’s Google I/O. However, that conference came and went, without a trace of Android 4.3. But after last week’s Android 4.3 leak, we knew it was finally coming soon. And in today’s Google event, which also marked the release of the Nexus 7 refresh, it has finally been made official.
So what’s new in this latest flavor of Jelly Bean? Here are some of the key changes, courtesy of the Android Developers blog post:
- OpenGL ES 3.0 — Game developers can now take advantage of OpenGL ES 3.0 and EGL extensions as standard features of Android, with access from either framework or native APIs.
- Bluetooth Smart — Now your apps can communicate with the many types of low-power Bluetooth Smart devices and sensors available today, to provide new features for fitness, medical, location, proximity, and more.
- Restricted profiles — Tablet owners can create restricted profiles to limit access to apps, for family, friends, kiosks, and more. Your app can offer various types of restrictions to let tablet owners control its capabilities in each profile.
- New media capabilities — A modular DRM framework enables media application developers to more easily integrate DRM into their own streaming protocols such as MPEG DASH. Apps can also access a built-in VP8 encoder from framework or native APIs for high-quality video capture.
- Notification access — Your apps can now access and interact with the stream of status bar notifications as they are posted. You can display them in any way you want, including routing them to nearby Bluetooth devices, and you can update and dismiss notifications as needed.
- Improved profiling tools — New tags in the Systrace tool and on-screen GPU profiling give you new ways to build great performance into your app.
Much has also been done to improve UI performance. Most notably, the Android 4.3 Platform Highlights page mentions a change to the hardware-accelerated 2D subsystem that modifies the stream of drawing commands to send the commands to the GPU in an optimized manner. And in instances when the CPU is required, these operations are now multi-threaded, allowing the use of multiple CPU cores. Improved window buffer allocation also speeds up buffer allocation, resulting in speedier rendering starts. And to best harness the GPU’s power in 2D hardware-accelerated tasks, the system now uses OpenGL ES 3.0 for optimized texture management and to maintain higher gradient rendering fidelity. Of course, however, the main use of OpenGL ES 3.0 will be to provide game developers with the framework and native API access they need to produce high quality and efficient games.
Another major highlight in this Jelly Bean refresh is a substantial refresh to the notification system, whereby third-party apps can observe the stream of notifications and display them or transfer them to nearby connected Bluetooth devices. And just as before, notifications can be enabled or disabled per app. Building upon this, however, now users are allowed to see and toggle which apps have access to the notification stream.
The tablet multi-user feature has also been revamped. Now in 4.3, users are given the option to set up restricted profiles. This allows owners to easily create separate environments for each user, with the ability to manage restrictions in apps available in those environments. This feature is aimed to sharing your device with friends and use at kiosks.
Other notable changes include Bluetooth Smart Ready to aid in discovery and communication with nearby devices, Bluetooth AVRCP 1.3 support for richer interactions with media streaming devices, an improved DRM framework, and a VP8 video encoder.
You can learn more by heading over to the Android Developers blog post and Android 4.3 Platform Highlights page. If you’re lucky enough to own a Google Nexus 4, Nexus 7, Nexus 10, or Galaxy Nexus, you can expect this update to come over-the-air shortly. And if you find yourself impatiently waiting, you can get a head start and download the images by visiting the Nexus device factory images.
One of our goals for the year has been to better organize all of the development works (ROMs, apps, tools, kernels, etc.) on XDA. We wanted this to be useful but also to have minimal impact on how developers post to XDA and on users who are happy with the current structure of the forums.
We’re currently testing a system, we call the Development Database (or DevDB for short) on a handful of forums (Galaxy S II, Xperia Z, Galaxy Note II, Droid DNA, Nexus 4, Nexus 7). You’ll note that when you go to the gateway to those forums, such as that for the Xperia Z, you can now see a tab for ROMs. Each ROM is linked to a forum thread– just as it’s always been. But when you click through to these threads, you’ll notice that they’ve become “enhanced” with a shiny new menu bar as shown in the below screenshot. Developers have the option of which features they want to include for each project:
- Feature Requester
- Bug Reporter
- Downloads (via our own torrent tracker)
- Q&A Thread Linking
February 27, 2013 By: Jimmy McGee
XDA Developer TV, our YouTube channel, has seen tremendous growth in the past year. We will be reaching our 100,000th subscriber soon. We decided that the best way to celebrate would be to hold a contest. We will be giving away two Nexus 7 tablets. And, both contests are open to our international followers.
This contest will have two parts. We will give one of the 100,000 subscribers a Nexus 7. So if you are not subscribed, go ahead and jump on over to the XDA Developer TV channel page and subscribe. This part of the contest will be open until the 100,000 subscriber milestone is reached.
Fear not current subscribers, we would not be here without your support! So to win the second Nexus 7 all you have to do is share your favorite XDA Developer TV video on your social networks. If you share it on Google+, Twitter, and Facebook on the same day, that counts as three entries. You are eligible for one entry per Social Network per day, so enter daily. Make sure to mention us in the post, or we won’t see your entry and it will not be included. At the conclusion of the contest period we will randomly select an entry. This part of the contest will be open until 11:59PM GMT Friday, March 15th 2013. The winner will be announced on March 18th’s News Recap with Jordan. READ ON »
February 13, 2013 By: Conan Troutman
Those of you with Nexus devices will most likely have received an update to Android version 4.2.2 by now. The news of the OTA was broken on the forums yesterday by XDA Senior Member kataria.vikesh. Those of you who have not are no doubt on the verge of applying the update manually after a lengthy session of gawping at your status bar awaiting that notification. Nexus 4 owners may find themselves waiting a little longer than the rest, as there doesn’t seem to be any sign of an update for the device yet. However, the changes have already been merged into some custom ROMs. This latest version, build number JDQ39, was also pushed to AOSP yesterday meaning that we should soon see this latest update becoming unofficially available on a whole host of devices.
So what exactly are the changes in 4.2.2? Well, we already know from the version number that this isn’t a huge update, there are however some notable additions to functionality and tweaks to the UI. Most of these are directed more towards the end user, but one of which will no doubt be a welcome addition for some developers out there so let’s start with that one.
ADB Whitelist: Connecting your device to a PC with USB debugging enabled will now bring up a prompt which displays your PC’s RSA key and offers the option to add this information to a whitelist. Unless a specific computer is allowed access via this prompt, the device will be inaccessible via ADB. This of course adds an extra level of security to the device. Providing you use a secure lock screen any potential thief with a little ADB knowledge will be unable to access the prompt and add themselves to the whitelist. Unfortunately, it seems that this feature may not provide much more security for users with an unlocked bootloader, according to the guys at Android Police.
Other changes include:
There’s speculation as to whether the issue of streaming music over A2DP has been addressed. Some users are reporting an improvement, whereas others are not. If anyone is able to spot this in the commits then please let us know in the comments.
February 9, 2013 By: Will Verduzco
By now, you’ve no doubt heard of Paranoid Android. In fact, there’s a good chance that if you own the Galaxy Nexus, Nexus 4, Nexus 7, or Nexus 10; you’re either running the ROM yourself or you’ve given it a try in the past.
For the few unfamiliar, Paranoid Android’s defining characteristic is what they call Hybrid Engine. Contrary to what many believe, this is not “tablet mode,” though that is one of many things that can be accomplished using Hybrid Engine. Rather, Hybrid Engine allows you to select both dpi and layout on a per-app basis. Rather than being forced to modify the look of your entire device, you can optimize your applications to what works best for each and every one.
A new and important feature that has come to light in the recent beta builds, and now sees light in the official release of PA3 is the PIE control system. What this allows one to do is to disable onscreen buttons and use a swipe gesture to access various common functions, thereby freeing up valuable screen real estate. The menu can be seen in the header image above, as well as the video below.
Per-app color, another significant feature in PA3 and recent pre-release builds, allows you set system UI colors on a per-app basis. Want a black system bar for your launcher, but a blue one for Facebook? No problem. Have more eccentric choices in mind? That’s fine too.
The most recent (and most specific) addition is screen calibration for the Google Nexus 4. While the vast majority of third-party reviews have praised the device for its screen, build quality, responsiveness, and overall value; some have been quick to point out that the screen seems under-saturated, especially to those coming from overly saturated S-AMOLED devices. Rather than trying to offer a simple band-aid solution with RGB calibration, PA3 also corrects for the device’s gamma issues to give it the punch the IPS panel deserves. While you’ll be hard-pressed to find anyone who says that the Nexus 4 screen looks “bad,” the calibration has been met with much praise thus far, and the team only hopes that these changes are incorporated upstream.
Are you salivating yet? Those eager to get started should visit the threads below. Naturally, there will also be a plethora of unofficial ports for various unsupported devices. So if you’re looking for a build for your device, be sure to check in your device forum to see if someone’s already attempted porting the ROM. Even better, you could always try porting and building the ROM from source yourself.
January 14, 2013 By: Haroon Q. Raja
Whenever there is mention of custom ROMs for Android, AOKP is one of the first to come to mind. Over the past year, the popularity of this source-built ROM has skyrocketed to make it one of the most recognizable third party development projects. Though over the past few months, several AOKP users (including myself) decided to jump ship to other ROMs because of the delay in a release based on Android 4.2. There is good news: The wait is over, as Team Kang has officially released Android 4.2.1-based AOKP JB-MR1 Build 1, starting with the Nexus line of devices.
As with the changes in Android 4.2 from 4.1, the changes in this AOKP release from the previous one aren’t as many as we’ve seen in previous major releases. However, they are still substantial enough to improve the overall user experience. Apart from all the AOKP features of the previous Jelly Bean builds, you’ll get:
The Nexus line of devices was the primary focus of AOKP since its very inception, and they are the first ones to get this release as well. However, that doesn’t mean other devices will be left out. The team is working on Galaxy S II, S III, Note, and Note II support for the next build, with builds for many other devices to follow. Until then, you can grab the ROM for Nexus devices from the following links:
The team is also planning a return to its (bi)weekly release schedule once builds for more of the officially supported devices are ready. More information can be found at the AOKP website.
Back in October, we brought you news that you could connect a XBox 360 controller to the Nexus 7. That was a nice mod because the more controllers that are compatible with an Android device, the better. This is expecially true for people who don’t have other gaming systems or gaming-capable computers. Now, a very simple hardware mod can be made to make the original Xbox controller compatible with the Google Nexus 7 and presumably other devices running Jelly Bean.
XDA Forum Member Dslrocks10 posted a basic hardware mod tutorial that makes the Xbox controller compatible with Android devices using a USB OTG cable. It’s a relatively simple mod, and it only requires users to have a disposable Xbox breakaway cable. Here are the instructions:
what you do is strip an xbox controller’s cable, or the break away cable(this is smarter due to the fact you can still use your controller later with another break away cable), and strip a usb cable (the male end still in tact) and simply wire the corresponding colors together(Green to green, red to red, black to black, white to white). Now the xbox controller has a 5th wire which is yellow, you can ignore that one.
So far the only issue with this is that the L and R triggers aren’t working. However, Dslrocks10 says that this could be because of a broken controller rather than the triggers not working in Android. So it’s recommended to try on a fully working controller. However, it may also be due to the lack of appropriate button mapping of the analog triggers to digital virtual buttons, which would be alleviated by a button remapper.
For the full details, check out the modification thread.
January 3, 2013 By: Former Writer
Update: Due to questionable gains and inherent drawbacks, we recommend that users please read this explanation before proceeding.
Despite some truly top notch hardware, some high end Android devices still seem to have trouble with some games. There are mods out there to fix these lag issues, as the underlying cause usually equates to some issue with the processor not working to its full capacity. There is now a new fix for Nexus 7 devices to help reduce game lag.
XDA Senior Member lambgx02 originally posted the Seeder Entropy Generator to stop lag on various Android devices. The running premise was that most game lag was caused by entropy. As lambgx02 explains:
So, I was experiencing significant lag as we all do from time to time, and decided I was going to get to the bottom of it.
After tracing and debugging for hours, I discovered the source of 90% of Android’s lag. In a word, entropy (or lack thereof).
Google’s JVM, like Sun’s, reads from /dev/random. For all random data. Yes, the /dev/random that uses a very limited entropy pool.
Random data is used for all kinds of stuff.. UUID generation, session keys, SSL.. when we run out of entropy, the process blocks. That manifests itself as lag. The process cannot continue until the kernel generates more high quality random data.
So, I cross-compiled rngd, and used it to feed /dev/urandom into /dev/random at 1 second intervals.
The result of fixing this issue is that games run much, much smoother. XDA Recognized Contributor bradman117 tested and confirmed it worked for the Nexus 7 and posted where more users can see it. So far, users have have reported excellent results. Installation is easy as well, as it’s a simple zip to flash in recovery.
However, if you do decide to give it a shot be aware of the very real caveats of decreased security due to inferior random number generation, as well as decreased battery life. As stated by lambgx02:
- There is a (theoretical) security risk, in that seeding /dev/random with /dev/urandom decreases the quality of the random data. In practice, the odds of this being cryptographically exploited are far lower than the odds of someone attacking the OS itself (a much simpler challenge).
- This may adversely affect battery life, since it wakes every second. It does not hold a wakelock, so it shouldn’t have a big impact, but let me know if you think it’s causing problems. I can add a blocking read to the code so that it only executes while the screen is on. On the other hand, many of us attribute lag to lacking CPU power. Since this hack eliminates almost all lag, there is less of a need to overclock, potentially reducing battery consumption.
While lambgx02 states that the risk of being exploited due to the urandom -> random seeding is low, any increased risk is too much for a daily driven device in our book. We advise all those who are interested to give this a second thought, though, due to the potential risks. However, we understand why some in heavily controlled environments, where cryptographic strength is not of high importance, may want to give this a shot. To see more, check out the Nexus 7 thread as well as the original thread.