Stories
Slash Boxes
Comments

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 9 submissions in the queue.
The Fine print: The following are owned by whoever posted them. We are not responsible for them in any way.

Journal by NotSanguine

[Update: 22 September 2019 2056 GMT]

Writing this journal made me think more about what the issues with building LineageOS for my phone entailed. As I mentioned, it's primarily an integration issue. As such, I reviewed the hardware specific Github repos I was using and noted that some of the hardware specific repos (android_device_htc_t6-common, android_device_htc_msm8960-common and android_device_htc_t6vzw) were being pulled from the LineageOS 14.1 branch (the last supported branch for my phone). So I changed the repos to pull from the only project I'm aware of that supports my phone under 15.1 (ResurrectionRemix, with repos from developer TARKZiM.

Et voila! LineageOS 15.1 now compiles (well, except for an initial error that the recovery image -- which I'm not using, I use TWRP instead) complained that it was too large for my recovery partition. Since I'm not using that recovery image anyway, increasing the allowed size of the recovery image got rid of that error.

I now have an installable rom for LineageOS 15.1. Sadly, it hangs on boot, without even the boot image animation being displayed. :( Logcat debugging is called for now, to determine what may be preventing the image from booting.

In the meantime, I'm convinced that further integration is required. It appears that TARKZiM, as well as the TWRP folks have moved to a universal codebase for the HTC One Max (t6-Univ) and I'm guessing I'm going to need to integrate that into my device tree.

I'll continue updating as things move (or don't) along.
[End Update 22 September 2019 2056 GMT]

So I have an HTC One Max (VZW version) that's served me pretty well for more than five years.

When I bought it back in 2014, I chose it over the HTC One and other phones for several reasons:
1. Big screen (5.9"/1080p support -- not that I watch video on it)
2. Extra battery life compared to other phones
3. External SDCard slot (I keep ~60GB of music on that)

It shipped with HTC's stock Android 4.4.2 (KitKat), along with HTC's bloatware and a few nice utilities.

In September, 2015 HTC released the *last* update (still 4.4) for the One Max and declared that it would not support future versions of Android on it.

For quite some time, I'd been annoyed that I didn't have access to the more granular permissions in Marshmallow and investigated custom roms for my phone.

I installed Cyanogenmod (now LineageOS) and really liked it. However, it did not have support for either the IR blaster or the fingerprint scanner on the One Max.

This led me to go back to the stock rom, as I was using both of them on a regular basis.

On a fairly regular basis, I'd check in on LineageOS development and see if the IR/fingerprint functionality was available.

Then it happened. LineageOS stopped supporting my phone after v14.1. Still with no IR/fingerprint sensor support.

Finally, a few months ago, I got so sick of the lack of features in my stock rom, I went looking around for new custom roms that support my phone. There wasn't much out there.

I poked around the forums on https://www.xda-developers.com/ and found very little in the way of stuff I could use.

Then I decided to see if I could port my phone to LineageOS myself. I started with LineageOS 15.1 (Android 8 Oreo) and failed miserably. Mostly because I had no experience with Android development.

So I went back and attempted to build the most recent version that was supported (LineageOS 14.1) and successfully built that.

I then went back to LineageOS 15.1 and tried again. It still failed. I did a ton of research and realized that the issues I was seeing were related to the hardware (t6vzw/msm8960) code (from 14.1) I was using wasn't compatible with the newer android version.

More research and I determined that this stuff isn't just poorly documented, discussions about porting and references to specific resources to assist were mostly non-existent.

It was around this time I discovered ResurrectionRemix (based on LineageOS) which *does* support my phone, With Android 7, 8 and 9.

I installed various versions, and they do, in fact, work on my phone. Currently, I have RR 7.0.2 (Android 9 pie) running on my phone.

But RR eats the battery much faster than the stock rom or the older versions of LineageOS. What's more, Wifi and cellular signals are not as strong as in supported versions. Even worse, there's an RRStats app that sends usage information back to the RR folks, and that cannot be removed or uninstalled. Assholes.

As such, I am continuing to try to build LineageOS for my phone. As many of you are aware, this requires an iterative approach:

1. Assemble the various code repos required;
2. Attempt the build;
3. Address any errors that cause the build to fail;
4. Go to (2) until the build completes successfully;
5. Profit!

I'm continuing with (2) and (3) and have addressed a bunch of problems. The issues I'm seeing now appear to be related to android API changes causing missing/malformed definitions.

One of the mechanisms I've used to address this is to use the Android version hardware specific code from builds (in this case, Resurrection Remix) that do support my hardware. This has helped considerably and the build goes much farther.

I'm currently stuck on some C++ definition errors ('member reference base type...is not a structure or union') which certainly shouldn't be too hard to address. I suspect that this is an integration issue, as the errors I'm seeing are in the hardware-specific code that I ripped from RR and am trying to build LineageOS.

I am emphatically *not* asking for coding assistance, as I want to work these issues out myself, but feel free to make suggestions and/or point me at resources that might give me some ideas as to how to address such integration issues.

Note that I'm not a developer by trade (rather I'm Unix/Linux guy from way back in the 90s, so I'm no stranger to building software and doing some debugging), so this has been and will continue to be a nice learning (C++, possibly some Java) experience for me.

Have other Soylentils engaged in this sort of project? I'd be interested to hear about your experiences and would appreciate suggestions and pointers to reference material that might help.

Feel free to chime in on the wasteland that is software support for phones older than two years and/or other Android ecosystem issues too.

Display Options Threshold/Breakthrough Reply to Article Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1)
  • (Score: 0) by Anonymous Coward on Saturday September 21 2019, @10:48PM (7 children)

    by Anonymous Coward on Saturday September 21 2019, @10:48PM (#896927)

    https://community.e.foundation/t/unofficial-e-builds-for-lineage-supported-phones/4860 [community.e.foundation]

    You'll still need to build it yourself but it looks like they still maintain a 14.1 branch that shouldn't have battery drain issues.

    • (Score: 2) by NotSanguine on Saturday September 21 2019, @11:00PM (6 children)

      by NotSanguine (285) <reversethis-{grO ... a} {eniugnaStoN}> on Saturday September 21 2019, @11:00PM (#896934) Homepage Journal

      Thanks! I appreciate the suggestion.

      However, I've already built 14.1 for my phone (that's the last *supported* version) from the standard LineageOS repos. However, it doesn't support features (IR blaster, fingerprint scanner, plus others) that I want.

      Which is why I'm currently trying to build 15.1. Once I have that going, I'm going to 16.

      --
      No, no, you're not thinking; you're just being logical. --Niels Bohr
      • (Score: -1, Offtopic) by Anonymous Coward on Sunday September 22 2019, @08:44AM (5 children)

        by Anonymous Coward on Sunday September 22 2019, @08:44AM (#897050)

        Fingerprint scanner doesn't save you from cops or anyone willing to cut off your hand.

        • (Score: 2) by NotSanguine on Sunday September 22 2019, @11:55PM (4 children)

          And who says protection from *anyone* is my goal?

          How about just ease of use? swipe and I'm in. Anyone else who gets my phone would need to figure out the 4-16 digit PIN

          If anyone really wants into my phone (why they would I have no idea. There's no info there that's secret or could be used for financial gain) enough to do violence to me, waving the $5 wrench would be more than enough. They wouldn't even need to hit me with it. Hell, most of the contacts don't even have last names, let alone addresses. And there is no synchronization with *any* social media. You know, because it's a *phone*.

          As far as the police are concerned, let them get a warrant. Then they can discuss it with my attorney. And once I've wasted as much of their time as I can, they can have access, only to find that there's really nothing of value there. Oops.

          --
          No, no, you're not thinking; you're just being logical. --Niels Bohr
          • (Score: 2) by Freeman on Monday September 23 2019, @08:44PM (3 children)

            by Freeman (732) on Monday September 23 2019, @08:44PM (#897790) Journal

            Half the reason why I don't want a new phone is, because of the fingerprint sensor and/ or facial recognition software. I'm not sure who thought future dystopian science fiction movies were a source of inspiration as opposed to warnings, but 'meh.

            --
            Joshua 1:9 "Be strong and of a good courage; be not afraid, neither be thou dismayed: for the Lord thy God is with thee"
            • (Score: 2) by NotSanguine on Monday September 23 2019, @10:18PM (2 children)

              Half the reason why I don't want a new phone is, because of the fingerprint sensor and/ or facial recognition software. I'm not sure who thought future dystopian science fiction movies were a source of inspiration as opposed to warnings, but 'meh.

              My phone is almost six years old and has a fingerprint sensor. That's nothing new. Newer versions of Android have the face auth bit too. Not sure why you're up in arms about it. You are not forced to use either. I have no interest in the face auth stuff, nor do I use the fingerprint sensor to do anything other than unlock the phone.

              You can use a PIN or a swipe pattern to lock your phone, or just don't lock it at all. There's no requirement that you use any biometrics.

              The real issues with modern phones aren't the auth mechanisms, IMHO. They're the tracking/spying mechanisms that can be/are used. And using a feature phone won't stop you being tracked either -- if you want to make/receive calls, the phone company needs to be able to track your phone to do so. As such, even if you disable GPS and (on Android, I'm sure there's an equivalent for IOS) location services, you will still be tracked so that the phone can, you know, be used as a phone.

              --
              No, no, you're not thinking; you're just being logical. --Niels Bohr
              • (Score: 2) by Freeman on Wednesday September 25 2019, @05:29PM (1 child)

                by Freeman (732) on Wednesday September 25 2019, @05:29PM (#898638) Journal

                I consider facial recognition and fingerprint sensors as part of the tracking/spyware apparatus.

                --
                Joshua 1:9 "Be strong and of a good courage; be not afraid, neither be thou dismayed: for the Lord thy God is with thee"
                • (Score: 2) by NotSanguine on Wednesday September 25 2019, @05:42PM

                  by NotSanguine (285) <reversethis-{grO ... a} {eniugnaStoN}> on Wednesday September 25 2019, @05:42PM (#898644) Homepage Journal

                  I consider facial recognition and fingerprint sensors as part of the tracking/spyware apparatus.

                  You won't get an argument from me.

                  But as I said, you're not forced to use it. Nor are you required to provide a fingerprint or a photo to the phone.

                  If you don't use those functions/spy apparatus, they can't be used for or against you.

                  In my case, I'm not so concerned as, like Arlo Guthrie [youtube.com], somewhere in Washington enshrined in some little folder, is a study in black and white of my fingerprints.

                  As for facial recognition on my phone, that's never going to happen, for exactly the reasons you suggest.

                  --
                  No, no, you're not thinking; you're just being logical. --Niels Bohr
  • (Score: 1) by radical dreamer on Sunday September 22 2019, @12:52AM (4 children)

    by radical dreamer (8568) on Sunday September 22 2019, @12:52AM (#896966)

    Even worse, there's an RRStats app that sends usage information back to the RR folks, and that cannot be removed or uninstalled. Assholes.

    And the heads-up about ResurrectionRemix. Does not sound like root.

    • (Score: 2) by NotSanguine on Sunday September 22 2019, @01:27AM

      And the heads-up about ResurrectionRemix. Does not sound like root.

      I'm not sure I understand what you mean.

      ResurrectionRemix (RR) versions prior to 7.0.2 had Magisk [xda-developers.com] in the build. So, yes there was root.

      7.0.2 does not use Magisk and is not rooted when installed. The same is true of LineageOS 16 (upon which RR 7.0.2 is based). However, a quick flash of the Lineage SU Addon [cyanogenmods.org] (download link [lineageos.org]) deals with that.

      There are a whole bunch of apps that can't be uninstalled on every version of android I've ever used. Most of that is vendor crap in stock roms, and most of the rest is Google's garbage. This is true with or without root on both stock *and* custom roms.

      On custom roms it's usually just Google crap (depending on which custom rom you're talking about).

      But RR roms don't allow disabling or uninstalling the RRStats app, although you can force-stop it. But it starts at boot time and you cannot change that.

      The solution is to build it yourself, without including the RRStats app. Although I'm bypassing that by attempting to build LineageOS instead of RR (which is based on LineageOS).

      But there is definitely root. I can confirm that.

      --
      No, no, you're not thinking; you're just being logical. --Niels Bohr
    • (Score: 2) by NotSanguine on Sunday September 22 2019, @01:35AM (2 children)

      I'd also point out (sorry, forgot to include this in my previous reply) that the only reason I'm using ResurrectionRemix for the moment is that it's the only custom rom that has Android 9/pie (or 8/Oreo for that matter) that will actually run on my HTC One Max (t6vzw).

      Do you have a rooted android device? If so, check and see how many apps can't be disabled and/or uninstalled even with root. You may be surprised.

       

      --
      No, no, you're not thinking; you're just being logical. --Niels Bohr
(1)