yashsingh1/xdaforums huggingface dataset:
[MeMO Pad 7 Original Android Development] lambdadroid:
New test build of LineageOS 16.0.

Changelog:

Set the ASUS MAC address for WiFi and Bluetooth - this fixes Bluetooth having a non-unique MAC address. The WiFi MAC address is now the same as on the stock ROM.

Fixed: Black screen/freeze when using offline mode charging

Changelog TWRP:

Fixed: Error when formatting data partition as F2FS

Fixed: Space for encryption footer was not being reserved when formatting as ext4/f2fs

Fixed: Error when flashing an old LineageOS 14.1 build

We're getting closer and closer to a release, so please report any problems you find with these builds. Preferably as issues on GitHub: https://github.com/me176c-dev/android_device_asus_K013/issues

I tend to forget about issues that are not listed there.

Note: The builds below are intended for testing only. They are insecure, and likely unstable. You need to do a full factory reset before flashing them.

TWRP: twrp-recovery-3.2.3-20190131-UNOFFICIAL-me176c.img

Flashable ZIP: lineage-16.0-20190201-UNOFFICIAL-me176c.zip
[MeMO Pad 7 Original Android Development] Flashxcate:
Is there a way to have root access on lineage os 16 for this device? I need it to set the cpu governor to performance and obtain a little bit more speed. I though about flashing the same supersu zip I used for lineage 14, but I was worried I could brick the device.

Huge thanks to you for the amazing work you are doing :good:
[MeMO Pad 7 Original Android Development] lambdadroid:
Not sure, easiest way at the moment would be probably using Magisk. There will be probably an official su-addon from LineageOS when they start releasing LineageOS 16 builds.

In the future this will be possible to set without root using the power profiles again (like on Lineage 14.1). However, I doubt it is really worth it: it will likely not result in major performance improvements and will rather cause the device to heat up more quickly. At some point it will throttle performance, making it even worse than it was before.
[MeMO Pad 7 Original Android Development] Flashxcate:
I flashed the Supersu Lineage provides for Lineage os 16 and it worked :)

But as you said it didn't result in a major performance increase. I flashed your Lineage 16 to have the video decoding capability (Before it I was running your L 14, but it couldn't handle video playing) so I could watch Amazon Prime Video. Now it's able to start playing videos, but usually the app freezes, and the system feels very slow compared to Lineage 14. I figure it must be a ram issue, because it seems like it's always full (800 or more out of 890 mb occupied).

Thanks for your support :)
[MeMO Pad 7 Original Android Development] lambdadroid:
Video decoding is largely the same on LineageOS 16 and LineageOS 14.1. If I remember correctly I once tested Amazon Prime Video on Lineage 14.1 and although it started playing videos, it didn't play them properly (or maybe it freezed, can't remember). I will try to test it again on LineageOS 16.

Unfortunately the low amount of RAM is a serious bottleneck of this device. It would perform so much better with just twice the RAM. With 1 GB RAM, almost all RAM will already be taken up by the system, leaving only very few left for apps to use. Eventually, I want to try enabling the Android Go build configuration, which is optimized for devices with very few RAM. It comes with a price: it attempts to reduce RAM usage at the cost of more CPU usage (and eventually higher battery drain).
[MeMO Pad 7 Original Android Development] lambdadroid:
With Android Oreo, Google introduced Android (Go edition), a number of build time options to optimize Android for low-end devices with very few RAM (<= 1 GB). At this point, this tablet is one of these devices. So it probably makes sense to enable these options for this ROM. They do come with a price: less RAM is traded for higher CPU usage. Some features like splitscreen are no longer available. But eventually they could improve the overall experience.

I have enabled them for a new test build and I'm looking for some testing: Does it feel any different from the previous test builds? Is anything better or even worse? I was personally not able to notice any major differences.

Note: Please make sure to do a factory reset before flashing the new test build (even if you were already running an older test build). Otherwise not all new options will be effective.

Changelog:

Enabled Android Go build options

TWRP: Fixed: Error when flashing stock ASUS firmware packages

We're getting closer and closer to a release, so please report any problems you find with these builds. Preferably as issues on GitHub: https://github.com/me176c-dev/android_device_asus_K013/issues

I tend to forget about issues that are not listed there.

Note: The builds below are intended for testing only. They are insecure, and likely unstable. You need to do a full factory reset before flashing them.

TWRP: twrp-recovery-3.2.3-20190203-UNOFFICIAL-me176c.img (should now be on a par with the Nougat version, consider this a release candidate)

Flashable ZIP: lineage-16.0-20190201-UNOFFICIAL-me176c.zip

I tested Amazon Prime Video on both the old test build and the new test build. As you say, the system, and especially this app feels rather slow. I barely use Android on this device except for testing, and I usually test without Google Apps or other apps installed. It performs much better without anything installed. Especially the Google Play Services consume a rather large amount of RAM, so the system is somewhat short of RAM all the time.

Starting a video in the Amazon Prime Video results in a massive increase in RAM usage (probably like 200 MB). I'm not sure what the hell they are doing in their app. It looks like they do the entire audio/video decoding in their app, and bypass all hardware/software codecs installed on the device. This might be why video playback is so slow and choppy.

Anyway, on the old test build the entire system usually freezed entirely. On the new test build it was somewhat better for me: it started playing the video. Depending on the movie, playback was usually choppy for about ~20 seconds. Then it started playing normally. It seemed somewhat usable. Give it a try and let me know how it works for you!
[MeMO Pad 7 Original Android Development] Nαi:
Not for the purpose of criticism, just expressing my opinion.

I did not have lags on Lineage 16.0, even though, but I did not run resource-intensive applications. Youtube (in browser) It reproduced perfectly, there were no problems with applications. So that, enabled Android Go build options personally for me—useless. And even destructive, as they remove some opportunities of the OS Android.

It may be better to work on optimization.

And what do you think? Will you use in the following builds?
[MeMO Pad 7 Original Android Development] lambdadroid:
It's not really about lags, but more about stability when running RAM-intensive apps. It's annoying if the whole system freezes in a way that you cannot even shutdown it properly. I did run into this situation once while testing the Amazon Prime Video app.

I agree that the Android Go options are somewhat controversial. That's why I did not enable them immediately for the previous builds. Fact is that this tablet can easily run out of RAM, especially with more apps and services installed. At this point, the specifications of this tablet definitely count into the category of devices that would now ship with Android Go. So if these are the build options that are intended and optimized by Google for devices with <= 1 GB RAM, I believe that it makes sense to use them.

However, I don't use Android on this tablet often enough to be able to say which configuration will be beneficial to most users. That's why I am looking for testing results and feedback from everyone interested to find the option that will be used as default for future builds provided by me. Both variants have their advantages and disadvantages, so it is impossible to find a solution that will be perfect for everyone.

As for other optimization, that's easier said than done. There is not much optimization possible if almost all RAM is already taken up by the system and other background services. Essentially, the kind of optimization you are looking for is exactly the optimization that is promised by the Android Go build options.
[MeMO Pad 7 Original Android Development] Nαi:
I decompiled this application. There are no x86 libraries in it. There is only armeabi-v7a (The armeabi-v7a is ARMv7a — Cortex and higher.). This means using binary translation ARM (houdini), which can also make its own adjustments. Usually slower (in 3 times) with some glitches and problems.

Version decompiled app: 3.0.241.59241.

Then let's wait for results and feedback from interested parties.
[MeMO Pad 7 Original Android Development] jerbear294:
This is my experience as well. Granted, I don't use any proprietary Play services on this tablet, nor do I use any RAM-heavy apps. Feels about the same as the previous builds as a result.

Which Linux distro are you using as an alternative? I noticed you got postmarketOS running, as well as Arch, although I'd really like to set up Fedora (and can compile a modified kernel if necessary). How is usability; which DE have you found effective for touchscreen exclusive use? Is installation as simple as just booting off of an OTG flash drive?

I really do think that in the long run, a minimal Linux setup will serve this tablet much better than whatever Google tries to do with Android in the future, especially since I don't exactly agree with the direction Google is trying to take Android as a whole...
[MeMO Pad 7 Original Android Development] lambdadroid:
I use Arch Linux. The postmarketOS uses my kernel sources, but it was [MENTION=6013061]Mis012[/MENTION] who set up that port. Frankly I don't think using Arch Linux or Fedora will make a difference. The reason I chose Arch Linux is that it is a minimal distribution that you can fully configure to your liking. You could probably compile the same kernel for Fedora, but you will need to do some extra work to set it up properly. For example, the kernel needs to reside on internal storage while everything else can also be placed on a external SD card. Some additional configuration is necessary to make audio/bluetooth work.

It works but to be honest it is not great either. My main problem is the browser: at least the 64-bit versions of both Firefox and Chromium run out of RAM extremely quickly, as soon as you open more than one or two tabs. YouTube in the browser is not usable at all because it immediately runs out of RAM. It's fine if you just want to run a shell or some simple applications. Playing videos with a proper media player would probably work too.

I personally don't use the touchscreen very much on Linux. I have an additional Bluetooth keyboard that connects automatically on boot. Then I use i3 (or probably Sway soon) as DE. The advantage is that it works well on small screens since almost the entire screen is available for the application. I only use the touchscreen for navigation/scrolling in the browser for example.

For touchscreen use, you would probably use something like Plasma Mobile. The postmarketOS people will know more about touchscreen optimized DEs.

I guess it depends if you want to install it as "dualboot" system (i.e. keeping Android working) by placing Linux on an external SD card or if you want to install it directly to the internal storage. Re-partitioning or even erasing the internal storage is somewhat dangerous: You may want to install Android in the future again and it also holds some important partitions with the serial number, BT/WiFi mac address and some other reserved partitions (not sure if they are used by the system).

For setting up Arch Linux as "dualboot" system I want to document two ways: The recommended way is using a powered USB OTG hub and then connecting a flash drive and an USB keyboard. Eventually, it should also be possible to install it from a regular PC directly on the external SD card. The kernel then needs to be pushed manually to the internal storage using ADB.

In general, Arch Linux installation is somewhat "complicated" if you are doing it the first time. Partitioning etc is done manually, but documented quite well in their wiki. Exactly this is of advantage here, though, because you can then place the boot partition on the internal storage and everything else on the external SD card. With installers like on Ubuntu or Fedora it might be more difficult to set up.
[MeMO Pad 7 Original Android Development] jerbear294:
If anything I'd be using a minimal Fedora install, which similarly drops you into nothing but a shell by default. Fedora's kernel isn't exactly upstream though, so you're right in that it would probably take some extra tweaking.

I may end up using Arch if that's the case. It wouldn't be my first time installing the distro, and it was my daily driver for several years.

Remote shell and a light video player is really all I need at this point. My most used application on the tablet is NewPipe, which I could easily replace with an RSS reader and mpv / youtube-dl.

The browser sounds like an issue, though. Lineage has the same thing, to an extent- good luck running anything that's Chromium based (they just won't render anything, even on the Go build), and Firefox works but is very slow. Only Webview based browsers seem to work adequately.

Have you tried something like Falkon? It's (supposedly) lighter than both of the major browsers, and is QtWebEngine based.

I may end up doing the same thing, and could always just configure an on screen keyboard in the notification panel for when it's needed. My X230T has a similar i3 setup.

Dualboot would be ideal. My SD card is 128 gigabytes, so storing a second operating system isn't too much of a concern.

This wouldn't be my first time installing Arch, as aforementioned (and I'm proficient enough that I don't consider the initial install complicated). I was assuming a typical Fedora install would work fine on the default kernel, then I would be able to install a modified kernel after the fact, but you make a good point about about the odd partitioning in this case. I definitely don't think Fedora's installer is going to handle that well (it recently, by default, when running setup on a friend's PC, merged an SSD and HDD into one partition...)
[MeMO Pad 7 Original Android Development] lambdadroid:
mpv/youtube-dl are working great for me, but how would you browse for videos? As I said, the browser version of YouTube is not exactly lightweight.

I think I once tried qutebrowser, which is also based on QtWebEngine. It basically worked, but compared to Chromium performance was rather poor. Haven't tested it for a while.

Note: The SD card interface is somewhat limited in speed in this tablet. I recently bought a Samsung 128 GB SD card, which is supposed to have read/write 100 MB/s. I got ~80 MB/s on my PC, but the tablet never reaches more than 40 MB/s. I believe this is because the hardware does not support the higher bus speeds (only DDR50 is supposed, not SDR104). So without optimizations, disk speed is somewhat poor too :) In this case, Arch Linux is somewhat annoying, because you regularly get big updates and need to write new stuff to the SD card.

I'm hoping to improve this somewhat by switching to F2FS (I used ext4 until now) and maybe configuring bfq as I/O scheduler.

TL;DR Performance is poor with everything in this tablet, but it's a great (cheap, resilient and open) device for some kernel/Linux/Android hacking for me. :) That's the only reason I still use it.

I have not made much progress with publishing Arch Linux here on XDA. It's been working fine and mostly finished for more than a half year now. The packages can easily be built from the repository. But I want to

Provide a binary repository that can be updated automatically together with pacman. But what would be a nice place to host it? It doesn't really work on GitHub Releases.

Provide instructions how to install it. Problem here is that those would be just a list of "recommendations". It's certainly not the only way and you still need to go through the work of installing a DE etc etc yourself. So I'm not even sure for how many people it would actually be useful. Finding time and motivation for docs is always hard :)
[MeMO Pad 7 Original Android Development] jerbear294:
Well, that's why I mentioned the RSS reader. I hardly browse for new channels these days, just keep tabs on ones I'm already interested in. YouTube supports RSS feeds for channels, and NewPipe uses this under the hood for its subscriptions.

I'm certainly not expecting a performant device either, and view it in a similar manner. For my use case, it's expendable, but I still have it because of how open the device has become since its launch.

I'm not too sure of any off-the-shelf solutions (aside from the AUR which won't work in this case), but a cheap VPS would do the trick. CPU and RAM isn't necessarily a concern, and neither is bandwidth with how niche running Arch on this tablet is.

This is probably the largest roadblock. I'd recommend operating under the assumption that people should know exactly what they're doing, and as such have an addendum on the official installation page instead of full instructions, providing things like the recommended partitioning. The only issue there is that despite all the warnings in the world, inexperienced users will inevitably still attempt an installation. While I'd hope that they would bail out when they realize they need to manually repartition via CLI, from my experience helping out on the Nintendo Homebrew Discord server, people will try anyways, then blame you when they end up overwriting an important partition.

Would you call this a good TL;DR of the installation?

Boot the Arch installation medium via me176c-boot

Repartition the external storage as usual (and absolutely with swap)

Mount the ESP and /, proceed with pacstrap (actually, can this tablet even connect to WiFi on the stock kernel?)

Install modified kernel, firmware, etc. before rebooting
[MeMO Pad 7 Original Android Development] lambdadroid:
Kind of. First, yes you can connect to WiFi on the stock kernel, if you copy some files and reload the kernel module. However, I've recently started building custom ISOs too (that also run with the custom kernel), so this is no longer necessary.

So it's more like:

Make a backup of the APD (ASUS Product Demo) partition in recovery. ESP is very small (~16 MB) and you can easily run out of space if you place kernels there.

APD contains useless product images/videos and has like ~250 MB additional space that can be used as an additional ESP partition.

Build/download custom ISO, put it on a flash drive, connect it and an USB keyboard to a powered USB OTG hub

Press F2 after connecting the hub to get into the UEFI setup, then switch to the boot tab and select to boot from USB (me176c-boot is not used in this case)

Boot Arch Linux, etc

Partitioning: Basically just need one partition on your external SD Card. The boot partition will be APD on the internal storage.

I haven't used swap myself yet, but it's certainly a good argument to do so. ZRAM (compressed RAM) might be a better option as a first step.

Keep in mind flash storage can only be written a limited amount of times, so if you create a swap partition the storage might break / cause issues more quickly.

If you want to use Android simultaneously, you may want to create a small partition at the beginning of the disk that will be mounted as external SD card on Android.

Reformat+Mount system partition (F2FS?) at /, APD as FAT32 at /boot

pacstrap etc, then install some additional packages

Configure bootloader (me176c-boot)

If you want to try it now I can upload the current packages* and the ISO so you can give it a try. Setting up the binary repository etc is going to take a few more weeks.

* I think you will need to build me176c-firmware yourself, that would be more the AUR kind of package since it contains proprietary files.
[MeMO Pad 7 Original Android Development] jerbear294:
Yeah, I'd like to give it a shot.
[MeMO Pad 7 Original Android Development] lambdadroid:
I'll upload them in a few days / next week. There are some pending changes I would like to finish first.
[MeMO Pad 7 Original Android Development] lambdadroid:
Still working on it. Just to be sure, do you have an USB OTG hub with external power supply? You will need to connect at least an USB keyboard and an USB flash drive. The other installation procedure needs more work.
[MeMO Pad 7 Original Android Development] jerbear294:
I have an OTG adapter and a powered hub. I'd assume that's functionally equivalent in this case.
[MeMO Pad 7 Original Android Development] lambdadroid:
If you connect an USB keyboard and press F2 while turning on the tablet, does it enter the UEFI setup? If yes, then it should work fine.
[MeMO Pad 7 Original Android Development] New Member in Toilet:
Considering that memopad 8 is similar to memopad 7 except the size can i install this version of lineage os on memopad 8? Can you make it work? Thanks
[MeMO Pad 7 Original Android Development] lambdadroid:
No. In general, this ROM is device-specific and cannot be used as-is on other devices. However, most functionality should be easily portable if, and only if, the device has the same SoC (BayTrail) and has received the UEFI (Lollipop 5.0) update. There are several devices called "memopad 8", so without the exact model name I cannot say anything further. Even with the same SoC, some functionality (e.g. battery/charging, WiFi, Bluetooth, Sensors) is device-specific and may or may not work without additional effort.
[MeMO Pad 7 Original Android Development] New Member in Toilet:
Sorry i forgot to mention. My device is Asus Memopad 8 181C

It has similar hardware to memopad 7 like Intel® Atom™ Z3745 and 1 gb ram but stuck on android 4.4.2
[MeMO Pad 7 Original Android Development] erkan.alper:
Hi, i tried lots of stuff but i can't load stock rom please help me
[MeMO Pad 7 Original Android Development] lambdadroid:
You need to flash https://dlcdnets.asus.com/pub/ASUS/EeePAD/ME176C/UL-K013-WW-12.10.1.36-user.zip
[MeMO Pad 7 Original Android Development] lygas:
Works great! Everything is all right ( so far, 3 weeks) better than 14. Battery last more than 14. Few times stuck.

Many thanks!
[MeMO Pad 7 Original Android Development] mike0800:
Same for me. Works fine.

Is the final release coming?
[MeMO Pad 7 Original Android Development] lambdadroid:
LineageOS 16.0 will be released when I have time and motivation to make the remaining changes: mainly SELinux enforcing that is essential for security.

Right now, it is neither abandoned nor actively being worked on. I will finish it at some point.
[MeMO Pad 7 Original Android Development] i5510:
Does anyone know where I can find a Xposed build for Android x86 Oreo / sdk27 "that doesn't cause boot loops"? :confused:
[MeMO Pad 7 Original Android Development] lambdadroid:
[MENTION=5479482]jerbear294[/MENTION] and everyone else: I have completed work on my Arch Linux packages for the ME176C. I have set up a binary repository, basic instructions/tips and tricks on the ArchLinux wiki, and a new thread here: https://xdaforums.com/memo-pad-7/orig-development/linux-arch-linux-asus-memo-pad-7-me176x-t3917593. It is possible that I forgot to note down some things that are intuitively clear to me, so if you have any questions, do not hesitate to ask in the new thread.

Edit: In case I haven't mentioned this anywhere: The Arch Linux packages and all future LineageOS builds require me176c-boot(strap) 0.3.0+. (Released earlier this year)
[MeMO Pad 7 Original Android Development] i5510:
Oreo or Pie (sdk28) :o
[MeMO Pad 7 Original Android Development] lambdadroid:
The patch I backported for that Xposed build exists in AOSP for Oreo and Pie, so a special build is no longer necessary. If it causes boot loops something else may be wrong, potentially due to a change in Android x86. (It does not sound like you are using this ROM.)