Marshmallow & Nougat (AOSP/CM/Lineage) for Nook HD/HD+ (& Tablet)

Search This thread

amaces

Senior Member
Feb 2, 2012
478
2,753
This thread, and Marshmallow/Nougat porting in general, are a continuation of the previous KitKat and Lollipop development; the general installation steps are more or less the same. If you need a very detailed guide, PeteInSequim's is a good resource, especially if moving from stock. Read/search through the previous threads for any missing information (CM12.1 OP). That being said, I'm uploading personal builds of AOSP 6.0/7.1, CM 13.0/14.1, TWRP, etc, here.

Some of the important device-specific changes from KitKat/CM11 are described in Hashcode's thread. The goal is to remain fairly close to CM or AOSP upstream, and integrate whatever fixes and enhancements in unified device trees. More progress information will be added here gradually, as I have time. A lot of useful discussion happened on the previous CM11, CM12.[01] threads, and the status of things is available to anyone willing to search. I am not a developer, mostly a hobbyist, and the usual disclaimers apply.

AOSP vs CM

Initially, AOSP builds happened out of curiosity, but also necessity, since CM13 needs some time to stabilize. As expected, an AOSP ROM is a lot more barebones than CM, and there are pros and cons for each flavor. Now that initial porting is done following the previous philosophy of reusing and common-izing the device trees, it seems feasible to maintain both AOSP and CM ROMs (whenever 13 is usable), although nothing is promised.

In truth, the current builds are more accurately described as AOSP-ish; at the very least, a few core components need to be modified for our HALs, proprietary blobs, etc. On top of that, I've been adding features and fixes that seemed essential to me. Still, major differences remain compared to CM, and before people deem them as bugs, here are a few:

  • Wake with Home button: not an AOSP feature; I took the CM code to make it work in these builds.
  • The Advanced reboot menu: also a custom feature; may be ported at some point.
  • Mounting exFAT or NTFS media: not AOSP-supported filesystems, but a priority for me.
  • BusyBox was a CM extra, but I'm including it starting with the November 8th builds.
  • Etc, etc.
Because we have a reasonably flexible build system, other ROM flavors could happen in the future. A custom ROM like CM is actually easier to maintain than AOSP given all the fixes and enhancements that need separate maintenance with the latter.

The major difference with the first November builds is having SELinux enabled (albeit Permissive). It had to be kept completely disabled during the initial porting, due to a kernel bug/missing feature that took more than a week to track down. Thus, logs contain lots of AVC denials now, as sepolicy has not been fully updated for MM; no need to report or worry about these yet.

On a personal note, posting on my threads is pretty tricky business... My builds were never intended for general consumption, but rather a way to move porting and development forward, and I often debate only keeping the GitHub repositories for people to build themselves. Obviously, that would upset hundreds of people at this point, so I make an effort to upload reasonably bug-free builds, as well as help even with trivial non-problems whenever I can. Nevertheless, low quality, or badly written posts (and I don't mean bad English) are a sure way to get ignored, and my memory is pretty long term ;) Basically, I won't police content here, but I also don't want to deal with the the kind of stupidity and entitlement so prevalent in real life.

In conclusion, no need to thank (unless you really want to), or ask about donating, etc, but do reassess the limits of your current understanding before making bold claims, as I do too. Nothing worse than having to fix a trail of misinformation... Also, comparisons to other people's work (unless constructive), complains about the state of things, or simply starting with "no offense" and such, will make your problem much less likely to be solved by me.

XDA:DevDB Information
AOSP 6.0/7.1; CM 13.0/14.1, ROM for the Barnes & Noble Nook HD, HD

Contributors
amaces, Hashcode, verygreen
Source Code: https://github.com/airend/android

ROM OS Version: 7.x Nougat
ROM Kernel: Linux 3.0.x

Version Information
Status: Nightly

Created 2015-11-02
Last Updated 2018-07-29
 
Last edited:

amaces

Senior Member
Feb 2, 2012
478
2,753
GApps & Partitioning Info

With unusual issues, especially if connected to Play Services, I recommend testing the ROMs without GApps before reporting bugs.

Currently, pico Open GApps should work on all AOSP, CM, or Lineage builds (M & N), although initial flashing should to be done before first boot (wiped data). With CM/Lineage 14, system space is barely enough, yet I still think we're fine with the current partitioning scheme. Changing it can introduce other complications, and haven't found an absolute reason for doing so. Nevertheless, it is possible to alter the partition sizes after installation, and thus increase available system space; @Lanchon prepared a pretty nice guide specifically for the Nook HDs.

About including GApps directly into the ROMs, I had tested this approach using the Open GApps manifests. While things can work better that way, legally, it wouldn't be a good idea to distribute these builds (for the same reasons CM had to stop including them). Also, I think there are a few people who wan't nothing to do with Google's proprietary services, so a likely deal breaker for them. We'll have to wait for the established packagers to decide how to deal with the MM changes, although my manifests are available, and one can include anything in personal builds.

Manifests & GitHub Branches

For people making their own builds, the customized manifests including my forked branches, and other changes, are kept more or less up to date at github.com/airend/android. There are currently three main branch pairs: cm-12/lolli, cm-13/marsh, and cm-14/nougat, the latter two being most updated. As the name implies, these manifests are based (and actually constantly rebased) on the corresponding upstream branch, either AOSP or CM/Lineage. Theoretically, once these manifests are stable, there is no need for local additions, but corrections might be needed nonetheless.
  • No need to repo init more than once, unless you're switching manifest branches (e.g., LP to MM, CM to AOSP, etc); repo sync will pull all manifest changes.
About naming conventions for my branches, I try to reuse as much as possible between CM/Lineage and AOSP, and when that's possible, branches are named lp-12, mm-13, etc. Otherwise, branches are named lolli, marsh, nougat, or cm-1*, depending on their base and specificity.
  • Upstream Lineage branch names haven't changed from old CM, and no current branch will be renamed here either (despite rebase).
The kernel repo contains additional feature branches named base/[subsystem], on top of Hashcode's last CM12.0 kernel. The main stable kernel is roughly equivalent to merging all these feature branches, although the history is different.

Recovery Information

We do have official TWRP images (https://twrp.me/Devices). While they don't work with CM12.1 anymore (for reasons described in that thread), they should be usable with all current Marshmallow builds.

More up to date eMMC TWRP images are included in the respective device folders. Personally, I've had a good experience with TWRP, and do not plan on looking at other recovery distributions. Now, there have been (very) sporadic reports of broken partition tables, soft-bricked devices, etc, blamed on recovery. Although recovery is usually not the actual culprit, here are some ways you can rescue a completely unresponsive device:

The instructions below are generic, and were meant for CWM. TWRP has all these image flashing features in the GUI, so CLI/shell is not strictly needed.
  1. It's a good idea to keep a microSD card around, with my external recovery image, or verygreen's.
  2. Once booted off the external recovery, you can easily fix whatever is broken (ADB is your friend here). There's no need to re-install CM11, as re-flashing recovery and/or boot will most likely fix your issue.
    • Recovery partition: dd if=<path to recovery image> of=/dev/block/platform/omap/omap_hsmmc.1/by-name/recovery
    • Boot partition: dd if=<path to boot/kernel image> of=/dev/block/platform/omap/omap_hsmmc.1/by-name/boot
  3. Afterwards, you should at the very least have a working internal recovery. I don't recall any instance where /system and/or /data became corrupted because of recovery, but you can certainly fix them now.
  4. I've never tested this part, but I believe that you may be able to install an eMMC CM12 ZIP with verygreen's external CWM, even if /data and /cache are F2FS (assuming you copied all ZIPs onto the external card). My understanding is that only /dev/block/platform/omap/omap_hsmmc.1/by-name/system (always ext4, mountable by any recovery) is touched during installation, so you may even bypass TWRP completely.
P.S. If you broke you bootloader by flashing the wrong recovery flavor, despite all images being clearly labeled as hummingbird or ovation, well, no sympathy for you… Still, you can bring your device back to life within minutes as described above.
 
Last edited:

amaces

Senior Member
Feb 2, 2012
478
2,753
Selected FAQs

  1. Should I use AOSP or CM/Lineage?
    Depends entirely upon personal preference, which requires testing, and some amount of research into what makes a ROM different. There are substantial core differences between the two flavors, which are not obvious immediately. If installing for the first time, flip a coin (and avoid builds in experimental, of course).
  2. How do I get root back?
    Until recently, some type of SU binary was included with all ROMs (WITH_SU=true on CM/Lineage, or using this repo on AOSP). This was needed because third-party system-less solutions don't work with our quirky bootimages, and system-mode installers have other issues on N. As builds mature, I'm separating the SU backend from main OTAs, roughly like CM/Lineage did. On my Nougat builds, there are currently two system-mode options:
    • On AOSP, I adapted phh's OSS backend for system-mode install (addonsu-phh-arm.zip). You need the matching manager to control access. Later on, I ported CM/Lineage's AppOps-based SU to AOSP, so that addon works here as well (see next item). These binaries need to be flashed after every ROM update, same as GApps.
    • On CM/Lineage, you can install their official add-on (addonsu-arm-signed.zip); it will use the baked-in manager, so no extra APK required. Or, you can install phh's SU and manager, like on AOSP. Neither needs to be flashed more than once here given the existing addon.d support.
  3. Why no official CM/Lineage builds since 12.0?
    The answer involves both technical complications, and some amount of politics. Getting changes accepted for non-mainstream/deprecated platforms like ours has been an uphill battle. Over time, many OMAP4 improvements have been developed outside CM, formerly by OMAP4-AOSP, now the Unlegacy-Android project. Those common hardware improvements have made it into 13.0/14.1 only recently, due to other people's perseverance. Although we're much closer to upstream Lineage compatibility, the hundreds of device tree, and more than a thousand kernel changes would still need to go through review. Given how long that takes for each item, and occasional opposition from non-OMAP4 reviewers, I decided to allocate my resources towards bettering these devices rather than official status. The downside is that people may feel dependent on my builds, which shouldn't be the case; I constantly rebase and maintain complete manifests, optimized for these devices. All the relevant changes are open and available in public GitHub repositories, which means anyone can submit them/try to work with upstream Lineage. However, for the above reasons, it's unlikely that I will make that effort.
  4. What's the current status of full screen casting, Miracast, HDMI, etc?
    Full screen casting to a Chromecast sink (either real, or emulated) works on all current Nougat builds. CM13 builds may have issues there, but AOSP M was fixes. Chrome casting from apps (the preferred way, if available) was never broken. Miracast in AOSP is pretty much legacy tech now. It also requires more hardware support compared to Chromecast-ing, and it probably doesn't work on any recent builds. Fixing HDMI is still a goal; it got broken on our devices after some Marshmallow revision. Until HDMI can be fixed, I disabled it completely to recover its unused VRAM allocation.
 
Last edited:

Monfro

Senior Member
Jul 4, 2009
1,262
1,094
Mantova (Italy)
Nexus 9
Google Pixel C
@amaces, I am currently running with the 11/01 hummingbird build from experimental, which I installed yesterday. It doesn't work as well for me as the 10/29. It is laggier, and for some reason right now, I can't log into from the kindle app. I also note that on rebooting, it will go through the boot cycle more than once, optimizing various apps each time. Of course, since it just numbers the apps, you can't actually tell what it is doing.:) . I think there are olicy/permission issues since trickster mod can't install busybox into the system partition and, as stated before, system won't boot into to revery, soft boot, or shutdown, without use of power,home keys. Do you wan't logs?

thanks again.

On Ovation it is the same: 10/29 is far better than 11/01.
Graphics problems on 11/01: the screen shows some green lines sometimes and it feels laggier.

---------- Post added at 11:42 PM ---------- Previous post was at 11:40 PM ----------

Will this (continue to) be based off AOSP, or CM?
I would prefer AOSP: less customization means less resources needed.
...and for Ovation every MB of ram free can be fundamental.

Or maybe both versions :)
 
  • Like
Reactions: SalmanJohnson2011

belfastraven

Senior Member
Jan 16, 2014
430
214
For some happy news, multi-window mode (enable in developer options) seems to work pretty well (on my HD) It's probably even more useful on the HD+ where you have more real estate.
 
  • Like
Reactions: Tschumi and Monfro

Zippy Dufus

Senior Member
Feb 12, 2011
476
178
Thank you @amaces for M!

Questions:
  1. Are your repos in a state that I can start trying to build it?
  2. Is this your (local) manifest https://github.com/airend/android/blob/marsh/default.xml
  3. I saw the above manifest and tried to build a couple of days ago and got many errors just updating my local repo. I'm reckoning that the manifest has such a mishmash of projects that I should probably delete my entire repo and download it all again. Is this likely the case?
Again, thanks. I'm so excited! :D
 
Last edited:

js290

Senior Member
Nov 7, 2014
121
29
Things are still busy till probably tomorrow afternoon, but I will add proper replies here, and on the CM12 thread soon. As of now, there must be a few dozen posts I need to go through, plus lots of other updates.

Is gapps for 6.0 available? If so, which one do you recommend?
 

king200

Senior Member
Feb 13, 2012
1,072
402
I have 2 HD+ and wanted to dedicate one to Marshmallow. I spent time with this build and it just became too frustrating.

I did find a gapps benzo-gapps-M-20151011-signed-chroma-r3.zip that did get rid of the nag messages with settings in settings-apps. I'll get links if others are interested. AdaWay 2.2 did give some strange messages about BusyBox scripts but it turns out there is a Mars working version of AdaWay, AdAway-release_Build-Oct.09.2015.apk that I haven't tried yet.

Very frustrating not really being able to use the ExtSdcard. Installation of apps is not that simple without using a third party browser.

First efforst here are great. If you look at first efforts on phones, disaster and pre=alpha is what is going on.
 

belfastraven

Senior Member
Jan 16, 2014
430
214
And for those of you who, like I, have been looking to find where the external sd carded is mounted if you want to keep it as an external sd card, on 11/1 build ,it is at /mnt/media_rw/FFF9-7EC0 on my HD-I think that that actual hex address part may vary. I was able to manipulate the files on it with the root explorer app. I think other apps will work as well--they just don't know where to find the external sd card... .
Root Explorer lets you set that path.

Also, I was able to enable and use the Sytem UI Tuner setting...
 
  • Like
Reactions: Monfro

belfastraven

Senior Member
Jan 16, 2014
430
214
Couldn't you use a script to mount(or link?) the folder to its "proper" location at start up?
I thought that's what the system did anyway.

I think the issue is that it's "proper" location for Marshmallow (the system locates the card with no problem) is different from where older apps are looking for it. I'm sure one could add a link or links I was just happy to locate it:)
 

amaces

Senior Member
Feb 2, 2012
478
2,753
Got a working keyboard by flashing attached, Google Play Services crashes constantly and the screen randomly flashes garbled graphics, then locked up. Not exactly a daily driver, but cool nonetheless!

That's a problem with whatever GApps package you flashed; there are many crappy ones floating around. Either way, a clean AOSP installation has none of those issues.

What gapps do I need to use for the 6.0? One was too big, another wouldn't flash, one flashed but all of the Google apps crashed. Help!!

Read post #3.

Other bugs I have found: SD is not recognized, home button is not mapped to wake the device.
AOSP keyboard crashes, but we can flash others. Google Play services crashed in the first minutes...I don't know if it started working well maybe after a silent update or it was not starting again.

Read OP about the distinction between AOSP and custom ROMs such as CM. Also, the AOSP keyboard is fine unless you flash GApps (see post #3.)

It's not for daily use. Performace is quite good, if not better, but there are many bugs, like computer can't recognize both Internal and external sd (in mtp), file managers can't recognize external sd, constant keyboard crashes (you can use any other) and many other which I have forgotten or haven't found yet.

So the only important bug I found is SD card not accessible: only built in file browser can correctly access it.

There are significant changes to storage management in Marshmallow, and I suspect those basic AOSP apps were once-again left behind, and are not using the newer APIs.

On Hummingbird, same as above re sdcard. Also location services seem not to be working properly. Accuweather, google maps don't seem to be able to access the services even though they have permission.

It's probably a missing location provider issue, like we had in the early days of CM12.0 (and which CM fixed). I'll need to track that down.

I've noticed a bit of what seems to be a memory management problem... once you have been using several apps for a while, (for me, NYTimes, kindle, Chrome_dev, settings, gmail, e.g. ) apps become rather laggy and you get the application not responding message. I am going to attempt to keep using this as my daily driver, however. Is there a way to do a soft reboot in this rom--previously you could do it from the power menu.

Although I haven't noticed that, all is possible; I haven't used my device for more than a few hours before having to work on fixing stuff, followed be reboot. The reboot options you're familiar with were a CM feature as described in the OP, but I plan to adapt their code. Beyond that, soft/reboot/recovery/power off don't seem to work at all, root or no root. It's possible CM was setting those in a legacy fashion for our devices (and even then, they were falling apart as you know).

Reboot to recovery isn't working for me. Currently, I'm running the latest experimental marshmallow build. I've been running op's cm12.1 build even before this thread was created. I didn't have recovery or power off problem like some users until the last cm12.1 10/18 build. When I saw the marshmallow build and decided to try it, that's when I found out that reboot to recovery and complete power off are not working properly. The way I access recovery now is manually pressing power button to shut it off and do power+home to boot to recovery. I tried flashing twrp 2.8.7.4 from amaces's folder and also twrp 2.8.7.0 using flashify. It doesn't fix the problem. I can't access fastboot from computer. When I use adb reboot bootloader command, it loads to cyanoboot and few seconds later shows android boot window. How can I get reboot recovery and power off working again?

The devices never had reboot to bootloader or fastboot support, and TWRP doesn't have much to do with reboot/power off within the ROM. Otherwise, read above; currently, if you need to power off, hold the power button for a few seconds to force shutdown.

@amaces, I am currently running with the 11/01 hummingbird build from experimental, which I installed yesterday. It doesn't work as well for me as the 10/29. It is laggier, and for some reason right now, I can't log into from the kindle app. I also note that on rebooting, it will go through the boot cycle more than once, optimizing various apps each time. Of course, since it just numbers the apps, you can't actually tell what it is doing.:) . I think there are olicy/permission issues since trickster mod can't install busybox into the system partition and, as stated before, system won't boot into to revery, soft boot, or shutdown, without use of power,home keys. Do you wan't logs? […] Have trickster mod running now--needed to install busybox through recovery. If there is anything you want looked at, let me know. I note that the system is "idling" a bit warmer than it was onlast Lollipop build--at a little over 30 degrees C. "miscellaneous" is using 22% of battery.

Didn't notice new lags on non-GApps install, but again, I must've tested a dozen builds since last week. The only major difference with 11/01 was turning SELinux on (albeit Permissive, see OP), after a week-long bug hunt. In the meantime, the repos jumped to r26 (MDB08M, same as latest Nexus 6P builds), which represents about two months of development upstream, so hopefully the next builds will be better. AOSP doesn't include busybox as you discovered, but you can easily install the package once you have root (Trickster MOD's dev publishes a good installer, so no need to flash stuff in recovery, although that works too).

Logs won't help much at this point since I can see all these issues on my device as well; I'm tackling them sequentially, but all these take a lot of time, so it'll be a while until decent ROMs happen.

In the experimental folder are the Marshmallow builds, did you flash over Lollipop? There are still a lot of kinks.

Definitely factory reset before installing Marshmallow.

no--I had been running the 10/29 Marshmallow--. I know that these are very early, but I think the 10/29 was working better for me. I'm sure some of this is not the rom, but the apps. I do note a lot of avc permission problems in the logs, as well as Choreographer complaining about missed frames..., I am excited that this is running at all.

The AVC denial messages finally show up after I fixed SELinux, and Permissive shouldn't negatively impact performance, but yeah, sepolicy needs to be updated for MM soonish. The missing frame issue is troubling, and I'll definitely investigate if it persists into what I deem as stable builds.

On Ovation it is the same: 10/29 is far better than 11/01. Graphics problems on 11/01: the screen shows some green lines sometimes and it feels laggier […] I would prefer AOSP: less customization means less resources needed. ...and for Ovation every MB of ram free can be fundamental. Or maybe both versions :)

Same as above, and do let me know if these issues happen on a clean GApps-free installation.

Will this (continue to) be based off AOSP, or CM?

OP updated with relevant info, but yeah, ideally both will be maintained side-by-side. Of course, CM13 is in huge flux right now.

  1. Are your repos in a state that I can start trying to build it?
  2. Is this your (local) manifest https://github.com/airend/android/blob/marsh/default.xml
  3. I saw the above manifest and tried to build a couple of days ago and got many errors just updating my local repo. I'm reckoning that the manifest has such a mishmash of projects that I should probably delete my entire repo and download it all again. Is this likely the case?

I've be trying to keep everything on GiHub up-to-date and reasonably stable. As you noticed, I've been crafting a de-bloated manifest that will make it even easier to replicate my builds (details in post #2).

Now, you can repo init on top of the CM12 sources, but you'll need to --force-sync since many repos are overwritten. That would only matter if you made local commits, especially if you didn't upload them, because you'd likely lose them. Better yet, I suggest keeping the CM folder separate, then initialize another one for AOSP with the --reference option. By referencing the CM folder, repo will attempt to reuse common repositories, which is the majority of Git objects. The checkout will still consume space, but the hidden .repo folder will be much smaller. Of course, referencing is not needed if you have enough space. Conversely, if you delete everything (that is including .repo) and initialize anew, you avoid all these issues, but going back will be a hassle.

Otherwise, I'm using a 4.9 EABI for kernel, but Google may insist on 4.8. If that creates issues (it'll be obvious, missing compiler type errors), you can either remove those prebuilts in your local manifest additions plus bring in a 4.9 kernel toolchain, or simply create a symbolic link (ln -s arm-eabi-4.8 arm-eabi-4.9) in platform/prebuilts/gcc/linux-x86/arm.

I have 2 HD+ and wanted to dedicate one to Marshmallow. I spent time with this build and it just became too frustrating. I did find a gapps benzo-gapps-M-20151011-signed-chroma-r3.zip that did get rid of the nag messages with settings in settings-apps. I'll get links if others are interested. AdaWay 2.2 did give some strange messages about BusyBox scripts but it turns out there is a Mars working version of AdaWay, AdAway-release_Build-Oct.09.2015.apk that I haven't tried yet.

Very frustrating not really being able to use the ExtSdcard. Installation of apps is not that simple without using a third party browser.

First efforst here are great. If you look at first efforts on phones, disaster and pre=alpha is what is going on.

You gotta read the OP, especially the end of it... But yeah, I'm sure you did your research regarding GApps; the end of October packages were much better, albeit still very flawed (see post #3). AdAway works perfectly once you're rooted, even with versions older than 10/09 in the semiofficial thread, which should've been your first go to. There's no issue with SD card mounting, but you should be aware that fancy filesystems (e.g., exFAT, NTFS) are not supported by AOSP. Also, apps need to use the MM storage APIs. In conclusion, do your testing on a clean slate, before flashing any GApps; all are buggy currently, and that situation has nothing to do with these ROMs.

Couldn't you use a script to mount(or link?) the folder to its "proper" location at start up?
I thought that's what the system did anyway.

That won't work well since that path is not constant or universal. I'm sure we'll learn more about these new storage APIs, but I'm only providing the hooks based on the official documentation at: https://source.android.com/devices/storage/config.html#android_6_0.

I think the issue is that it's "proper" location for Marshmallow (the system locates the card with no problem) is different from where older apps are looking for it. I'm sure one could add a link or links I was just happy to locate it:)
 

TeutonJon78

Senior Member
Jul 24, 2010
573
283
Has anyone tried BaNKs MM gapps? People seem to be using them on the N4 with MM builds without any issues.
 

king200

Senior Member
Feb 13, 2012
1,072
402
I'm doing much better with the 0129 build than the 1101. The 1101 build is unresponsive. Also, something like opening an SMB tab doesn't work.

I did this to solve the Google Play Services fc http://www.ibtimes.co.uk/android-6-0-marshmallow-gapps-how-fix-google-play-services-force-close-error-1524431
------------------------------------------------------------------------
With aosp_ovation-ota-MRA58K.151029.zip:

Avoided many hangs and reboots. Developer options->background processes limit->3 max has to be reset on each boot.

Green streaks on screen: developer options_>disable HW overlays. Select but after reboot, will reset to off.

Could browse to MicroSD card with Root Explorer, mnt/media_rw/147E-92D1, was not able to set the path for external card to that value.

Was able to set Home to card with Root Browser https://play.google.com/store/apps/details?id=com.jrummy.root.browserfree

Moon Reader could find the card but not see any files in the root folder.

AnTuTu starts test but then closes.

Google Text-tospeech Engine give error messages. Pico TTS works but has to be set to very slow speech rate to be intelligible. Voice search works but, again, difficult to understand.

Kodi ran well. A big battery eater and video intensive.

Use Swype keyboard and freeze Android Keyboard.

Adaway, even the AdAway-release_Build-Oct.09.2015.apk would not install. Placed a working Hosts from another device file in /system/etc and it works fine.

Adb is more reliable with WiFi than cable.
 

belfastraven

Senior Member
Jan 16, 2014
430
214
I'm doing much better with the 0129 build than the 1101. The 1101 build is unresponsive. Also, something like opening an SMB tab doesn't work.

I did this to solve the Google Play Services fc http://www.ibtimes.co.uk/android-6-0-marshmallow-gapps-how-fix-google-play-services-force-close-error-1524431
------------------------------------------------------------------------
With aosp_ovation-ota-MRA58K.151029.zip:

Avoided many hangs and reboots. Developer options->background processes limit->3 max has to be reset on each boot.

Green streaks on screen: developer options_>disable HW overlays. Select but after reboot, will reset to off.

Could browse to MicroSD card with Root Explorer, mnt/media_rw/147E-92D1, was not able to set the path for external card to that value.

Was able to set Home to card with Root Browser https://play.google.com/store/apps/details?id=com.jrummy.root.browserfree

Moon Reader could find the card but not see any files in the root folder.

AnTuTu starts test but then closes.

Google Text-tospeech Engine give error messages. Pico TTS works but has to be set to very slow speech rate to be intelligible. Voice search works but, again, difficult to understand.

Kodi ran well. A big battery eater and video intensive.

Use Swype keyboard and freeze Android Keyboard.

Adaway, even the AdAway-release_Build-Oct.09.2015.apk would not install. Placed a working Hosts from another device file in /system/etc and it works fine.

Adb is more reliable with WiFi than cable.
On the 11/05 hummingbird rom, rooted, but without gapps or any additional app loaded, I have no sound
or video . Loading a couple of apps from APKs, no location services, Amazon Kindle not responding, same as earlier.
This was a clean flash--wiped system, data, cache, dalvik...

I'll try playing with this a bit more.
 

amaces

Senior Member
Feb 2, 2012
478
2,753
On the 11/05 hummingbird rom, rooted, but without gapps or any additional app loaded, I have no sound
or video . Loading a couple of apps from APKs, no location services, Amazon Kindle not responding, same as earlier.
This was a clean flash--wiped system, data, cache, dalvik...

Hmm, the A/V stuff may be due to the inclusion of media_codecs_ffmpeg.xml, which is present only in CM. Since you're rooted, you could test this by deleting the <Include href="media_codecs_ffmpeg.xml" /> line at the end of /system/etc/media_codecs.xml.

The Amazon Kindle issue is intriguing; do you remember if you had it on the last CM12.1 builds? There could be several reasons, including a heap change that I made about a month ago. Either way, can you describe in more details what happens, and possibly capture a log?
 

belfastraven

Senior Member
Jan 16, 2014
430
214
Hmm, the A/V stuff may be due to the inclusion of media_codecs_ffmpeg.xml, which is present only in CM. Since you're rooted, you could test this by deleting the <Include href="media_codecs_ffmpeg.xml" /> line at the end of /system/etc/media_codecs.xml.

The Amazon Kindle issue is intriguing; do you remember if you had it on the last CM12.1 builds? There could be several reasons, including a heap change that I made about a month ago. Either way, can you describe in more details what happens, and possibly capture a log?

Deleting the line from /system/etc/media_codecs.xml fixed the sound and video problems.

Amazon definitely was fine on lollipop builds--it may have even worked on 10/29 Marshmallow, but I was so excited about that build I can't remember now :) It's one of my 3 or 4 most used apps.

What happens is that the application will start and if you are not logged into it already, will allow you to click on "start reading" and will bring up a log in page. Sometimes I have had the page come up, sometimes the application seems to freeze and then quit, sometimes I will get the "xxxx application is not responding..." message, sometimes it appears to restart on its own. I managed to log in once on the 11/01 rom, and then the application would die/freeze/etc when synching content so it never was usable. I could make no sense of the messages in the logs because I'm not experienced enough with this.
thanks for your help.

p.s. I cannot get the "file manager" app root access...
 

Attachments

  • 2015-11-06_12.18.zip
    162.6 KB · Views: 99

Top Liked Posts

  • There are no posts matching your filters.
  • 99
    This thread, and Marshmallow/Nougat porting in general, are a continuation of the previous KitKat and Lollipop development; the general installation steps are more or less the same. If you need a very detailed guide, PeteInSequim's is a good resource, especially if moving from stock. Read/search through the previous threads for any missing information (CM12.1 OP). That being said, I'm uploading personal builds of AOSP 6.0/7.1, CM 13.0/14.1, TWRP, etc, here.

    Some of the important device-specific changes from KitKat/CM11 are described in Hashcode's thread. The goal is to remain fairly close to CM or AOSP upstream, and integrate whatever fixes and enhancements in unified device trees. More progress information will be added here gradually, as I have time. A lot of useful discussion happened on the previous CM11, CM12.[01] threads, and the status of things is available to anyone willing to search. I am not a developer, mostly a hobbyist, and the usual disclaimers apply.

    AOSP vs CM

    Initially, AOSP builds happened out of curiosity, but also necessity, since CM13 needs some time to stabilize. As expected, an AOSP ROM is a lot more barebones than CM, and there are pros and cons for each flavor. Now that initial porting is done following the previous philosophy of reusing and common-izing the device trees, it seems feasible to maintain both AOSP and CM ROMs (whenever 13 is usable), although nothing is promised.

    In truth, the current builds are more accurately described as AOSP-ish; at the very least, a few core components need to be modified for our HALs, proprietary blobs, etc. On top of that, I've been adding features and fixes that seemed essential to me. Still, major differences remain compared to CM, and before people deem them as bugs, here are a few:

    • Wake with Home button: not an AOSP feature; I took the CM code to make it work in these builds.
    • The Advanced reboot menu: also a custom feature; may be ported at some point.
    • Mounting exFAT or NTFS media: not AOSP-supported filesystems, but a priority for me.
    • BusyBox was a CM extra, but I'm including it starting with the November 8th builds.
    • Etc, etc.
    Because we have a reasonably flexible build system, other ROM flavors could happen in the future. A custom ROM like CM is actually easier to maintain than AOSP given all the fixes and enhancements that need separate maintenance with the latter.

    The major difference with the first November builds is having SELinux enabled (albeit Permissive). It had to be kept completely disabled during the initial porting, due to a kernel bug/missing feature that took more than a week to track down. Thus, logs contain lots of AVC denials now, as sepolicy has not been fully updated for MM; no need to report or worry about these yet.

    On a personal note, posting on my threads is pretty tricky business... My builds were never intended for general consumption, but rather a way to move porting and development forward, and I often debate only keeping the GitHub repositories for people to build themselves. Obviously, that would upset hundreds of people at this point, so I make an effort to upload reasonably bug-free builds, as well as help even with trivial non-problems whenever I can. Nevertheless, low quality, or badly written posts (and I don't mean bad English) are a sure way to get ignored, and my memory is pretty long term ;) Basically, I won't police content here, but I also don't want to deal with the the kind of stupidity and entitlement so prevalent in real life.

    In conclusion, no need to thank (unless you really want to), or ask about donating, etc, but do reassess the limits of your current understanding before making bold claims, as I do too. Nothing worse than having to fix a trail of misinformation... Also, comparisons to other people's work (unless constructive), complains about the state of things, or simply starting with "no offense" and such, will make your problem much less likely to be solved by me.

    XDA:DevDB Information
    AOSP 6.0/7.1; CM 13.0/14.1, ROM for the Barnes & Noble Nook HD, HD

    Contributors
    amaces, Hashcode, verygreen
    Source Code: https://github.com/airend/android

    ROM OS Version: 7.x Nougat
    ROM Kernel: Linux 3.0.x

    Version Information
    Status: Nightly

    Created 2015-11-02
    Last Updated 2018-07-29
    20
    Selected FAQs

    1. Should I use AOSP or CM/Lineage?
      Depends entirely upon personal preference, which requires testing, and some amount of research into what makes a ROM different. There are substantial core differences between the two flavors, which are not obvious immediately. If installing for the first time, flip a coin (and avoid builds in experimental, of course).
    2. How do I get root back?
      Until recently, some type of SU binary was included with all ROMs (WITH_SU=true on CM/Lineage, or using this repo on AOSP). This was needed because third-party system-less solutions don't work with our quirky bootimages, and system-mode installers have other issues on N. As builds mature, I'm separating the SU backend from main OTAs, roughly like CM/Lineage did. On my Nougat builds, there are currently two system-mode options:
      • On AOSP, I adapted phh's OSS backend for system-mode install (addonsu-phh-arm.zip). You need the matching manager to control access. Later on, I ported CM/Lineage's AppOps-based SU to AOSP, so that addon works here as well (see next item). These binaries need to be flashed after every ROM update, same as GApps.
      • On CM/Lineage, you can install their official add-on (addonsu-arm-signed.zip); it will use the baked-in manager, so no extra APK required. Or, you can install phh's SU and manager, like on AOSP. Neither needs to be flashed more than once here given the existing addon.d support.
    3. Why no official CM/Lineage builds since 12.0?
      The answer involves both technical complications, and some amount of politics. Getting changes accepted for non-mainstream/deprecated platforms like ours has been an uphill battle. Over time, many OMAP4 improvements have been developed outside CM, formerly by OMAP4-AOSP, now the Unlegacy-Android project. Those common hardware improvements have made it into 13.0/14.1 only recently, due to other people's perseverance. Although we're much closer to upstream Lineage compatibility, the hundreds of device tree, and more than a thousand kernel changes would still need to go through review. Given how long that takes for each item, and occasional opposition from non-OMAP4 reviewers, I decided to allocate my resources towards bettering these devices rather than official status. The downside is that people may feel dependent on my builds, which shouldn't be the case; I constantly rebase and maintain complete manifests, optimized for these devices. All the relevant changes are open and available in public GitHub repositories, which means anyone can submit them/try to work with upstream Lineage. However, for the above reasons, it's unlikely that I will make that effort.
    4. What's the current status of full screen casting, Miracast, HDMI, etc?
      Full screen casting to a Chromecast sink (either real, or emulated) works on all current Nougat builds. CM13 builds may have issues there, but AOSP M was fixes. Chrome casting from apps (the preferred way, if available) was never broken. Miracast in AOSP is pretty much legacy tech now. It also requires more hardware support compared to Chromecast-ing, and it probably doesn't work on any recent builds. Fixing HDMI is still a goal; it got broken on our devices after some Marshmallow revision. Until HDMI can be fixed, I disabled it completely to recover its unused VRAM allocation.
    16
    KRACK, Oreo Plans, etc.

    any development -- or even thoughts about development -- of oreo for our everlovely nooks?

    Definitely my goal, and these were the devices I first started porting to Oreo, but this release really strains the limits of our current kernel and vendor blobs. Fortunately, updated blobs have recently become available, yet legally it's not possible to incorporate them into public builds. I don't know when this will change, and given that it took years to get here, I need to continue working on the old DDK for Oreo. The second issue is about current Wi-Fi stack, which fails on Oreo; the new drivers that I prepared before summer do work, but then about a third of people here didn't like them.

    If we're lucky and these two issues can be solved with current drivers, Oreo builds can happen sooner. Otherwise, it all depends on the ability to distribute the new DDK blobs.

    The freeze issue I am having with my HD+ running build 08/13 is getting worse in frequency and length.

    These devices are severely RAM-limited at this point. All sorts of races happen between LMK, zRAM, and other memory management with increased memory pressure, which is a constant state after adding GApps... Oreo might slightly improve this management, but really we need better kernel, graphics DDK, and many other things where progress is slow.

    Official LineageOS has applied patches for the Krack Wifi vulnerability. Are there plans to include these patches?

    Do you know when you'll find time to create/cook a new "nightly" for the hd+ with latest security patches and so on?

    New builds are uploaded in experimental. Unfortunately, Google has stopped updating 7.1.2 since August, but at least KRACK and possibly BlueBorne should be addressed in the latest AOSP builds. Lineage also includes these fixes, and more. At some point, I need to update the thread to highlight the Unlegacy-Android builds, which happen weekly, and tend to incorporate all security patches on AOSP.
    15
    GApps & Partitioning Info

    With unusual issues, especially if connected to Play Services, I recommend testing the ROMs without GApps before reporting bugs.

    Currently, pico Open GApps should work on all AOSP, CM, or Lineage builds (M & N), although initial flashing should to be done before first boot (wiped data). With CM/Lineage 14, system space is barely enough, yet I still think we're fine with the current partitioning scheme. Changing it can introduce other complications, and haven't found an absolute reason for doing so. Nevertheless, it is possible to alter the partition sizes after installation, and thus increase available system space; @Lanchon prepared a pretty nice guide specifically for the Nook HDs.

    About including GApps directly into the ROMs, I had tested this approach using the Open GApps manifests. While things can work better that way, legally, it wouldn't be a good idea to distribute these builds (for the same reasons CM had to stop including them). Also, I think there are a few people who wan't nothing to do with Google's proprietary services, so a likely deal breaker for them. We'll have to wait for the established packagers to decide how to deal with the MM changes, although my manifests are available, and one can include anything in personal builds.

    Manifests & GitHub Branches

    For people making their own builds, the customized manifests including my forked branches, and other changes, are kept more or less up to date at github.com/airend/android. There are currently three main branch pairs: cm-12/lolli, cm-13/marsh, and cm-14/nougat, the latter two being most updated. As the name implies, these manifests are based (and actually constantly rebased) on the corresponding upstream branch, either AOSP or CM/Lineage. Theoretically, once these manifests are stable, there is no need for local additions, but corrections might be needed nonetheless.
    • No need to repo init more than once, unless you're switching manifest branches (e.g., LP to MM, CM to AOSP, etc); repo sync will pull all manifest changes.
    About naming conventions for my branches, I try to reuse as much as possible between CM/Lineage and AOSP, and when that's possible, branches are named lp-12, mm-13, etc. Otherwise, branches are named lolli, marsh, nougat, or cm-1*, depending on their base and specificity.
    • Upstream Lineage branch names haven't changed from old CM, and no current branch will be renamed here either (despite rebase).
    The kernel repo contains additional feature branches named base/[subsystem], on top of Hashcode's last CM12.0 kernel. The main stable kernel is roughly equivalent to merging all these feature branches, although the history is different.

    Recovery Information

    We do have official TWRP images (https://twrp.me/Devices). While they don't work with CM12.1 anymore (for reasons described in that thread), they should be usable with all current Marshmallow builds.

    More up to date eMMC TWRP images are included in the respective device folders. Personally, I've had a good experience with TWRP, and do not plan on looking at other recovery distributions. Now, there have been (very) sporadic reports of broken partition tables, soft-bricked devices, etc, blamed on recovery. Although recovery is usually not the actual culprit, here are some ways you can rescue a completely unresponsive device:

    The instructions below are generic, and were meant for CWM. TWRP has all these image flashing features in the GUI, so CLI/shell is not strictly needed.
    1. It's a good idea to keep a microSD card around, with my external recovery image, or verygreen's.
    2. Once booted off the external recovery, you can easily fix whatever is broken (ADB is your friend here). There's no need to re-install CM11, as re-flashing recovery and/or boot will most likely fix your issue.
      • Recovery partition: dd if=<path to recovery image> of=/dev/block/platform/omap/omap_hsmmc.1/by-name/recovery
      • Boot partition: dd if=<path to boot/kernel image> of=/dev/block/platform/omap/omap_hsmmc.1/by-name/boot
    3. Afterwards, you should at the very least have a working internal recovery. I don't recall any instance where /system and/or /data became corrupted because of recovery, but you can certainly fix them now.
    4. I've never tested this part, but I believe that you may be able to install an eMMC CM12 ZIP with verygreen's external CWM, even if /data and /cache are F2FS (assuming you copied all ZIPs onto the external card). My understanding is that only /dev/block/platform/omap/omap_hsmmc.1/by-name/system (always ext4, mountable by any recovery) is touched during installation, so you may even bypass TWRP completely.
    P.S. If you broke you bootloader by flashing the wrong recovery flavor, despite all images being clearly labeled as hummingbird or ovation, well, no sympathy for you… Still, you can bring your device back to life within minutes as described above.
    14
    LineageOS 15.1 is released. https://www.lineageos.org/Changelog-16/
    will our Nooks be getting Oreo?

    Did I not emphasize that the roadblock so far is not Lineage, or even AOSP? We cannot use current DDK UM blobs, and new blobs are not legally available. After quite a bit of work, I've ported all the required parts (e.g., Binder, alarmtimer, timerfd, etc) to our 3.0 kernel (as well as to the unreleased K3.4); as soon as I'm able to use the new UM blobs (or somehow fix the current 1.9 DDK), Oreo builds can happen fairly quickly.