jeudi 18 janvier 2018

Xposed Installer v3.15 & Xposed Framework v90-beta2 are out with Android Oreo Fixes and Optimizations

It may have taken XDA Senior Recognized Developer rovo89 a while to get Xposed Framework working on Android Nougat, but that wasn’t the case with Android Oreo. Three months after Xposed was released for Nougat, the first beta version of the framework for Android 8.0 and Android 8.1 Oreo was released. Today, the Xposed Installer—the Xposed Framework’s frontend installation and management tool—has been updated to version 3.15.

As we see with virtually every beta release, there’s always something to work on and this initial release of Xposed Framework for Android Oreo is no different. With the Xposed Installer bump up to 3.15 we have a couple of small changes paired with a couple of more important ones. Here’s the full change-log:

Xposed Installer v3.15 Change-log

  • Fixed a crash in download list search on Oreo.
  • Fixed a crash when sending log on Oreo.
  • “Optimize apps now” menu item, will trigger cmd package bg-dexopt-job. It’s available since Oreo and will start the job that usually runs once per night if the device is charging. If you feel degraded performance after installing Xposed, it might be because all apps are running purely on JIT and interpreter. That’s because Xposed needs additional information to identify methods it has to invalidate, and that information will be determined during the next compilation. If you want that to happen now, use this new feature. It took about 20 minutes on my Pixel. For more background, see here.
  • Detection if Verified Boot (dm-verity) is active. If yes, any changes to the system partition will be detected and you’ll end up in a boot loop. The detection might not be 100% perfect yet, so if you notice false positives or negatives, please report a bug along with the output of adb shell getprop.
Xposed Installer v3.1.5 for Xposed Framework Xposed Installer v3.1.5 for Xposed Framework

Xposed Framework v90-beta2

rovo89 has also published v90-beta2 and uninstaller 20180117, and you can find these available via the Xposed Installer and the Xposed website. These support (un)installing Xposed via TWRP on the Google Pixel and probably other “system root image” devices, which rovo89 describes as devices where the system partition is mounted as the root directory and /system is actually just a subdirectory. Lastly, the previous uninstaller had a typo, which probably led to boot loops on all devices so be sure to always use the latest uninstaller!

from xda-developers

[Update: Still Not Available] Xiaomi Still Hasn’t Released Kernel Sources for the Mi A1

Update 1/18/17: It has been 2 months since we first called out Xiaomi for not releasing the kernel sources of the Mi A1. Since then, XDA Recognized Developer franciscofranco has taken to Twitter to demand the kernel source release, and other publications including ArsTechnica and AndroidPolice have joined in.

Xiaomi has had a long-standing issue with kernel sources. The Linux kernel’s GPLv2 license requires kernel sources to be released in a timely manner, as we have explained many times at XDA. This is precisely where Xiaomi has fallen short in the past, as the Chinese OEM has either failed to release kernel sources at all, or released them much later after the release of the device. As such, this is a violation of the GPLv2 license.

The issue has affected development for Xiaomi’s devices, which is a pity as the manufacturer’s phones are priced affordably enough to give an impetus to development. They also score high when it comes to the performance-per-dollar ratio, and devices like the Redmi Note 3 and the Redmi Note 4 have been some of the most popular devices on XDA. They have been a hit with enthusiast consumers not because Xiaomi has an admirable track record with kernel sources (which it does not really have) – but because the devices attract consumers and developers, giving them value for money.

Nevertheless, we have been waiting for Xiaomi to change its approach and start releasing kernel sources faster. At the recent launch of the Mi Mix 2 in India, Xiaomi’s Lead Product Manager Jai Mani stated in a roundtable discussion that the company would release quality kernel sources instead of just uploading them for the sake of it. He stated that the internal goal of the company is to release kernel sources within three months.

When the Mi A1 was released in September as the company’s first Android One device, we hoped that its kernel sources would be released in a timely fashion. Notably, Xiaomi also promised the Oreo update before the end of the year.

However, it has been two months since the Mi A1 went on sale. It is also now available in more markets as well, Spain being the latest addition to the list. The sad thing to note is that even after two months, Xiaomi has still not released kernel sources for the Mi A1. In this regard, the company is actually regressing instead of progressing, as the release of kernel sources for Redmi devices was quicker.

As expected, this is hindering development for the device, which has not picked up a lot of pace as of yet, unlike the Redmi Note 4. The slow pace of development is also hindered by the A/B partition system used on the Mi A1. Even though TWRP was recently released for the device, we still haven’t seen any ports of AOSP ROMs such as LineageOS.

We urge Xiaomi to release kernel sources for the Mi A1 as quickly as possible to enable the device to achieve its full potential in terms of development. Moreover, we urge the company to change its philosophy towards kernel sources, as it would be for the benefit of all parties involved. The deadline for timely release of kernel sources is running out; we hope to see the situation improve in the future.

Source: Github

from xda-developers

Xiaomi May Launch the Snapdragon 845-powered Mi 7 at MWC 2018

Last year, Qualcomm announced its next-generation flagship system-on-chip, the Snapdragon 845. It’s is expected to ship in a number of 2018 flagship Android devices, and a Xiaomi phone might beat others to the punch: CEO Lei Jun recently announced that the Xiaomi Mi 7 would sport Qualcomm’s new chip.

Mr. Jun didn’t reveal details about the phone or its launch time frame, unfortunately. But the official webpage for Mobile World Congress 2018 lists Xiaomi as an exhibitor, which lends credence to rumors the company will unveil the Mi 7 in late February.

Xiaomi MWC 2018

Source: Mobile World Congress

The Xiaomi Mi 7 is the successor to the Mi 6, which had a Qualcomm Snapdragon 835 system-on-chip, a 5.1-inch Full HD display, 6GB of RAM with 64/128GB of storage, a dual camera consisting of two 12MP sensors, and a 3350mAh battery.

Apart from the Snapdragon 845, not much is known about the Xiaomi Mi 7. Rumors suggest it’ll have a 6-inch 18:9 aspect ratio display, which seems likely considering Xiaomi launched budget phones last year with 18:9 screens. It’s also said to support wireless charging and facial authentication. The Snapdragon 845 confirmation is newsworthy enough, though — its new CPU coresnew GPU, new ISP, new DSP, and more make it a major upgrade from last year’s Snapdragon 835.

If the Mi 7 is unveiled at Mobile World Congress, it’ll share the stage with Samsung’s Galaxy S9, which will reportedly launch at the same event. If that turns to be the case, it will be reminiscent of MWC 2016, where the Galaxy S7 and the Xiaomi Mi 5 were both unveiled during the convention.

We expect to learn more details about the Mi 7 in the time leading to its unveiling.

Source: Android Central

from xda-developers

How Android Go Can Help Older Android Phones Run Android 8.1 Oreo

Android Go is Google’s stripped down version of Android based on Android 8.1 Oreo, and it aims to be an optimized version of Android for low-end devices with 1GBs of RAM or lower. It was announced last May at the Google I/O Developer conference, and eventually more details were revealed in December later that year. It was said to be made for the next generation of entry-level devices, to ensure that those in developing countries can still make use of functioning smartphones in order to access the internet and use apps.

Go has a wide variety of performance optimizations and improvements, including taking up 50 percent less storage space than an average Android Oreo installation. Thanks to Android Runtime (ART) and kernel optimizations too, a device running Android Go will, on average, run 15 percent faster than on a regular Android Oreo install on the same device. These optimizations are made through a number of specialized build configurations made by Google, which we’ll get to explaining later.

Android Go also benefits from special “Go” applications, such as Files Go, YouTube Go and Google Maps Go. These are lightweight versions of applications made by Google, which have reduced requirements to run more efficiently. This means that those with Android Go devices can enjoy most of the same benefits that regular Android Oreo users can too, making use of Google’s suite of applications without having to spend a lot of money on a flagship or even mildly more expensive budget device.

It’s all about Google expanding their market. Yet it begs the question that if Android Go consists mostly of a build configuration and a suite of optimized Google apps, can developers make their own builds of Android Go? In short, yes we can.

A Few LineageOS Developers are already building Android Go-optimized custom ROMs

We are already seeing somewhat of an uptake in Android Go from a custom ROM developer, with work starting on LineageOS 15.1 with Android Go build configurations for several old Sony phones. The devices in question are the Sony Xperia SP, Sony Xperia T, Sony Xperia V and the Sony Xperia TX. These devices all date back to the years 2012 and 2013, yet they will be receiving LineageOS 15.1 based on Android 8.1 Oreo using an Android Go build configuration, which may allow the devices to run Google ‘Go’ apps fluidly, should an Android Go set of Gapps eventually be released.

Any individual LOS maintainer should be able to introduce an Android Go configured build, with it being a set of build configurations and other optimizations. What this means is that those who may have purchased the Sony Xperia T for example, a device running Android 4.0.4 Ice Cream Sandwich at launch, will be able to use a better-optimized build of Android 8.1 Oreo on the device, making use of applications such as YouTube Go and Google Maps Go. It’s not going to run at flagship levels of performance, but it should be usable—especially for a device which dates back to 2012.

How Android Go Can Help Older Android Phones Run Android Oreo

Build configurations on Android are a set of parameters which pertain to various aspects of the Android system that are applied when compiling the system image for flashing onto a device. Typically these change how the system behaves, and Android Go’s main optimizations come from these build configurations.

Android Go

The build configurations used for compiling Android Go.

I spoke with XDA Recognised Developer joshuous, who helped me greatly to understand the changes that were taking place—what really makes Android Go work. Some of these build configurations cannot be changed without recompiling, and are part of the blueprint of the ROM itself. These are the fully capitalized flags.

All of these flags, however, pertain to many different aspects of Android relating to storage and memory usage. These include automatic storage management, Android’s low memory killer, the dex (dalvik executable files) optimizer and RAM limits for running apps. APK files consist of these DEX files, so in a way, it’s possible to think of an APK file as simply a ZIP file containing lots of .dex files, which is actually what Android runs when it executes an application. Automatic storage management will instead be controlled by the Files Go application, not the Android system.

Android Go Utilities Android’s Low RAM Mode

In Android 4.4 KitKat, Google introduced a new flag called “low-ram“, which was aimed at supporting devices with 512MBs of RAM. It makes a number of optimizations to the system. These changes are hugely beneficial to lower RAM devices.

Improved memory management

  • Validated memory-saving kernel configurations: Swap to ZRAM.
  • Kill cached processes if about to be uncached and too large.
  • Don’t allow large services to put themselves back into A Services (so they can’t cause the launcher to be killed).
  • Kill processes (even ordinarily unkillable ones such as the current IME) that get too large in idle maintenance.
  • Serialize the launch of background services.
  • Tuned memory use of low-RAM devices: tighter out-of-memory (OOM) adjustment levels, smaller graphics caches, etc.

These changes above basically ensure that the system makes sure to use compressed RAM where possible, through the use of ZRAM. ZRAM is basically a RAMdisk (a storage medium which uses RAM, much faster than using regular storage on the device) as a swap file. A swap file is used when RAM usage is high and applications still require memory. This is much, much slower than RAM and should be avoided where possible. In essence, it simply compresses the contents of memory.

Reduced system memory

  • Trimmed system_server and SystemUI processes (saved several MBs).
  • Preload dex caches in Dalvik (saved several MBs).
  • Validated JIT-off option (saves up to 1.5MB per process).
  • Reduced per-process font cache overhead.
  • Introduced ArrayMap/ArraySet and used extensively in framework as a lighter-footprint replacement for HashMap/HashSet.

What’s mostly happening here is just reduced memory consumption from various processes running on the device, to be as conservative as possible. Essential system services have been stripped to use as little memory as possible in the background, as every megabyte of RAM is important.

Android Go Uses a Modified Low Memory Killer and dex Optimizations

Given that Android Go is mainly for devices with 1GB of RAM or less, there will need to be more aggressive memory management. Android Go modifies the Low Memory Killer (LMK) in a few different ways. First, when a high amount of the RAM is used up, the low memory killer goes to a “critical pressure” state. This is because when memory usage is high, the system will become sluggish due to constantly trying to access a swap file on the device’s storage. Keeping the RAM clear will prevent the system needing to use this swap file and prevent memory thrashing. Memory thrashing occurs when the device’s memory is full, and constantly has to page the swap file on the device’s storage, degrading performance heavily.

Services and WiFi services are set to “speed-profile,” which means that select methods in these services are Ahead-of-Time (AOT) compiled. (A method refers to a set of code which can be called at any point by name.) This reduces RAM usage and storage, as the Android system will not need to continuously recompile essential services that run on the device. Meanwhile, shared APKs are set to “quicken,” which is designed to give extra battery life and extra CPU cycles by optimizing dex instructions to get better performance.

In terms of dex optimizations, Android Go does quite a lot. For starters, after 10 days it will downgrade an application if it isn’t used to save space. Downgrading here does not refer to the actual version number of the application decreasing, but rather it means that the dalvik_cache for the app will be wiped. The Dalvik cache is used so that the device does not need to recompile apps, instead, it is compiling only the most necessary parts of it and caching that. The rest is compiled using the Just in Time (JIT) compiler when the application is run. If the application is not used for 10 days, however, then the essential parts of the application which are pre-compiled are also removed. This is done to free up as much space as possible. Another simple change is not allowing an app’s RAM usage to exceed 256MB so that an app cannot use all of the RAM on the device.

Is Android Go the Future of Custom ROM Development on Low-end Devices?

Currently, we don’t know the answer to this, but the future looks bright for custom ROM development on older devices. There may be other problems in getting a newer version of Android running on a device, but in theory, an upgrade to a more optimized Android Go based on Android Oreo should make an older, low-end device run better.

from xda-developers

Huawei will Integrate Android Messages with RCS Messaging on All Their Smartphones

In many regions around the world, the popularity of SMS and MMS is declining. That’s because they can’t match the flexibility of Internet-based over-the-top (OTT) applications such as WhatsApp, Telegram. In countries like India, SMS  has been largely replaced by WhatsApp.

SMS has its place — it’s still the default texting tool in the US and other countries. But with respect to features such as rich media sharing and typing indicators, it has fallen behind. In November 2016, Google integrated RCS (Rich Communications Services) — the successor to SMS — with Android Messages. Although carrier support for RCS is still limited, it experienced a slight uptick in 2017. Now, adoption’s likely to accelerate thanks to Huawei’s decision to support Android Messages, powered by RCS, on its Android smartphones.

Huawei will begin shipping the Android Messages app across product portfolio in the coming months, the company announced Thursday. With Android Messages and RCS messaging, Huawei devices will offer a richer native messaging and communications experience, with access to features such as texting over Wi-Fi, rich media sharing, and group chats on supported carriers. Messages from the business will also see an upgrade thanks to RCS, and Huawei users will be able to make video calls directly from Android Messages via ViLTE and the Google Duo app.

Google says it’s collaborating with Huawei to extend its Jibe RCS cloud and hub solution to current and prospective partners as part of an integrated solution with Huawei’s infrastructure, which will make it easier for carriers to roll out RCS messaging to subscribers.

Jibe is Google’s RCS platform, and it’s seen relatively slow carrier adoption so far. If Huawei’s decision to embrace Google’s platform has the desired effect, though, it’ll increase support for the fledgling standard.

Source: Google

from xda-developers

This is Google’s Fuchsia OS running on the Pixelbook [Video]

Google is working on a number of operating systems for different hardware platforms. Many of its employees use an in-house Linux distro called Goobuntu (recently replaced with Debian-based gLinux), and there’s Android and Chrome OS, of course. A relative newcomer is Fuchsia, a custom-made OS designed for modern PCs and mobile devices. It first appeared on Google’s GitHub repository in 2016, and slowly but surely progressed as Google’s software team fleshed out its features. There have been some major developments in Fuschia as of late, and Ars Technica recently published a video of the OS running on a Google Pixelbook.

It’s an incredibly early version of Fuchsia, and it’s pretty amazing that it boots on the Pixelbook at all — much less recognizes hardware like USB ports, mice, keyboards, touchscreens, and USB Ethernet adapters. In the video Ars Technica published, there’s what appears to be a home screen, a quick settings panel, a Google search bar, Google Feed cards, a web browser, a split-screen mode, a tabbed mode, and much more. Most of the content is filled with placeholders right now, but the walkthrough does a great job of showing how Fuchsia is evolving.

It seems that Google is going for a completely universal operating system, here — one that can run on devices of all sizes, expanding to fit desktop monitors and shrinking to fit smartphone-sized displays. There’s even one feature, likely a developer tool, that lets you switch between Fuschia’s PC interface and smartphone interface, and toggle the phone interface between landscape and portrait mode.

In Fuschia’s current state, you have to load up a bootable USB with Zedboot, a basic bootloader that gets you connected to a network. From there, you can compile Fuchsia on a host machine so that you can send the system files over the network to the computer running Zedboot. Once that’s done, you can boot to the Fuschia welcome screen.

Fuschia definitely isn’t ready for prime time, though. While some of the OS’s features are in a working state, others, including WiFi support, aren’t functional right now. As promising as Google’s new OS is right now, it has a long way to go.

Source: Ars Technica

from xda-developers

Mysterious ZTE Smartphone running Android 8.1 Oreo receives WiFi certification

ZTE is a company that flies under the radar for many Android enthusiasts, but they’re actually one of the largest smartphone device makers in the world. Based in China, the company offers a few devices that our readers might have heard of: the Axon 7 and more recently the Axon M. The Axon 7 was a fan-favorite device thanks to its flagship-tier specifications at a competitive price, and it still has a strong development community on our forum. The Axon M, on the other hand, is an oddball: a foldable, dual-screen smartphone that actually kind of works.

While the Axon M is more an experiment that is building a foundation towards a future of smartphones with truly bendable displays, its radical design differences have been off-putting for many Axon 7 owners. Thankfully, the company has already confirmed that they are working on a proper Axon 7 successor, and while what we just discovered may not be it, we at least know that a new ZTE flagship is definitely on the way.

According to a new filing with the WiFi Alliance, a new ZTE device running Android 8.1 Oreo has just been certified. The model number is Z2321U and it is listed as a smartphone with LTE capabilities, though unfortunately no other information is available at this time. This device hasn’t shown up on my searches through TENAA, the FCC, or the Bluetooth certification pages, so we’ll have to wait for more details to emerge.

ZTE flagship Android 8.1

Still, the fact that this newly certified device is running Android 8.1 Oreo out of the box suggests that this is indeed a new ZTE 2018 flagship device. Whether or not it’s the promise Axon 7 successor, presumably the Axon 8, is up in the air. What’s also interesting is that this may be the first non-Google Android device running the Oreo Maintenance Release—if it releases soon, that is.

from xda-developers