Jump to content

tdm

Members
  • Content Count

    801
  • Joined

  • Last visited

  • Days Won

    84

Posts posted by tdm

  1. 6 minutes ago, SteffenWi said:

    Done. I'm assuming the "This build was signed by a public key" message will go away when we have a non-test LineageOS build?

    Yes, official Lineage builds are signed with official Lineage keys.  I never bother to generate and sign my builds with private keys.

     

    • Thanks 1
  2. 29 minutes ago, SteffenWi said:

    My banking app crashes when trying to start without giving any information as to why. From my previous phone I do know that an unlocked bootloader isn't an issue.

    If you can get me a logcat, I can take a look.  But no promises, I obviously do not share your bank... 😄

    29 minutes ago, SteffenWi said:

    On a more upbeat note: The camera is working perfectly and the physical button is working as expected :).

    Yes I noticed this last night.  Maybe I was pressing it wrong before? 😛

    29 minutes ago, SteffenWi said:

    Disclaimer: As the SIM card is a bit difficult to get out of my current phone, I didn't test anything regarding that yet.

    Cellular functionality will be interesting to see.  My device has a zero MEID, so I cannot connect until I change it.

    29 minutes ago, SteffenWi said:

    Question: Is there a way to get rid of the google asisstent stuff? Meaning the voice recog thingi? I had hoped that it wouldn't be included in the GApps package.

    I'm not sure where assistant is located.  It may be in the Google app.  But I'm not even sure where that is, as I never cared to delete it entirely and the gapps zip does not contain any files that look like independent packages for assistant.  You can disable always-on listening.  I always do this at the setup screen, as I definitely do not want Google recording everything it hears.  I know from experience with a previous device that when you disable always-on listening it actually does get disabled.

    • Thanks 3
  3. 4 minutes ago, SteffenWi said:

    Nope, it does not work. So what happens - and that is the same as with stock android - you press "d" on the keyboard and "s" appears. The numeric row is fine. I didn't try any special characters like äöü. For stock Android the solution was to go to System, then "Language and Settings", then "Physical keyboard", then click "Fxtec Pro1 (Default)" and in the pop-up select "German" (Or Deutsch if your system is set to German). For stock android that allowed the keyboard to work. On Lineage that doesn't do anything as far as  I can tell.

    Okay I guess I'll have to investigate that.

    4 minutes ago, SteffenWi said:

     

    Another issue: The WIFi symbol looks like it only barely has a signal (completely greyed out) even though I'm right next to my router.

    Yes, the WiFi signal strength indicator is broken.

    4 minutes ago, SteffenWi said:

     

    Starting youtube in the default browser and putting a video in fullscreen mode causes the screen to flicker. The status bars (top and right) are being displayed and disappear immediately again. Video playback itself isn't affected. It is quite irritating though. Playback in embedded mode/normal mode is fine.

    Seems to work fine here, both in the browser and in the youtube app...?

    • Thanks 1
  4. 6 minutes ago, SteffenWi said:

    Flash successful. No issues this time. Just remember kids: use a USB 3 cable connected to a USB 3 slot on your computer. It might just be my machine being weird though. But if the process gets stuck, just give it a try. I'm going to update this post as stuff happens or bugs appear.

     

    First bug: I'm using German keyboard layout, during the initialization Android asks you if you want to connect to a WIFI network. When trying to enter a password, the virtual keyboard does not pop up. When I open the physical keyboard, the screen does not change orientation and the keys I press do not match the input appearing on the screen. (I believe the original stock Android had the same issue and you have to go into settings and change the layout.)

     

    If I then click on the small keyboard icon in the lower right corner a popup appears and I can enable the virtual keyboard regardless of the state of the physical keyboard, which works. It seems like the open/close action is not being recognized at this time. Is that what is meant with "virtual keyboard should default to enabled. "?

    I believe stock has some changes to the orientation settings to allow landscape in more places.  But I am not quite sure exactly where or how yet, as I haven't gotten that far.

     

    As you noticed, the virtual keyboard does not pop up by default.  On stock it does.  I believe this is a preference setting in the device tree.  You can manually activate it just as you noted, by pressing the keyboard icon in the navbar and telling it to always show the virtual keyboard.

     

    I have not tried any non-English layouts and, to be honest, I would not know how they should behave.  But I can certainly investigate.  When setup is done, does the physical keyboard work as expected?

     

    Oh, and I have also noticed the physical keyboard does not seem to react to special modifier keys (the yellow diagonal arrows).  So certain characters may not be possible to input.  I think the forward slash on the P key is one of them.  I'll need to figure that out soon.

     

    My top priority right now is getting the figerprint reader to stop forgetting data on reboot.  Keyboard may be next if no other major issues appear.

     

     

    • Thanks 5
  5. 6 minutes ago, Polaris said:

    My wife uses an Android (I think Nougat) tablet for her work and it does the same thing with the WiFi adapter address.  Completely crazy as it gets a different address every time it boots.  I have our home LAN setup with a MAC white list (no this isn't the only security, lol, and I know it doesn't do much for someone in the know) so it was a pain in the butt as I had to make sure it had the same MAC every time to authenticate.  These kinds of things can make a sane person crazy, lol.

    The Pro1 WiFi mac should be persistent and (fairly) unique, so long as you don't nuke that file. But it's definitely bogus.

     

    • Like 2
    • Thanks 1
  6. A bit of news on MAC addrs.  The OEM writes /persist/wlan_mac.bin on boot using the binary /vendor/bin/macplugin.  They checked this binary into their device tree without any source, so I don't know the exact algorithm.  i'm in the process of reverse engineering it.  It seems to generate 02:aa:xx:xx:xx:xx where "xx" is random.  The kernel driver picks this up and strips the private bit so you get 00:aa:xx:xx:xx:xx.  So there you go -- each device gets a unique, random, bogus MAC address.  😄

     

    I'll investigate BT at some point soon.  I would not be surprised if that got skipped entirely.

     

    • Like 1
    • Thanks 6
  7. 2 hours ago, SteffenWi said:

    Wait what? How does that even work? From my limited understanding a network device has to provide a MAC address - even if it isn't a 'real' one. Is that again one of those 'ARM is a broken platform' things?

     

    The MAC addrs are read from different places depending on the wlan chipset (the wlan chip is not part of the soc proper).  The qcom wlan chip which is in the pro1 by default reads its MAC addrs from /persist/wlan_mac.bin.  You should have a copy of that file and it should match the MAC addr that you see in your system settings.  But the BSP spits out a default wlan_mac.bin with bogus addrs by default.  The OEM is responsible for changing this file at factory programming time.  Nobody bothered to do this on the pro1.  It is a similar story for BT.

     

    Also of note, nearly every OEM has their own unique and different way of reading the wlan MAC addrs.  Nobody actually uses /persist/wlan_mac.bin because that would be too simple and logical.  😄  For example, OnePlus uses an NVRAM item.  ZTE used /persist/wifimac.dat on the axon7.  And so on.

     

    Quote

     

    So, if Qualcomm decides to put a keylogger somewhere in their version of the kernel it would take ages before anyone found that due to all their changes? Wow...that seems really bad.

     

    While theoretically possible, it won't happen.  Qcom has too much invested to do this themselves.  And keep in mind that Google ships phones with Qcom chips and would surely detect something like this, even if nobody else did.

     

    Not to feed the tinfoil hat crowd, but it would be much more covert to place spyware in the modem side of things which is entirely closed source.  Either in the modem code proper or the user space blobs that drive it.  There are several hundreds of megabytes of closed source user space blobs in modern platforms which have direct access to things like the modem, trustzone, etc.

     

    Quote

     

    As for closed-source userspace binaries: That shouldn't prevent a kernel upgrade as the ABI towards the userspace is rarely changed and even if, it never breaks any prior stuff. That is a base rule of the kernel: Never break userspace. So the only issue is all those changes Qualcomm made.

     

    That is a nice thought.  Unfortunately, it is not true once the kernel leaves kernel.org.  Qcom breaks their own kernel-user ABI with nearly every release.  But that isn't really relevant to upgrading the kernel version.  You pull in the relevant qcom and oem bits on top of the new kernel version so that whatever ABI existed in the OEM kernel also exists in the new kernel.  The problem is making the qcom bits build and run with the new kernel version.

     

    EDIT: I may have misread what you meant.  Yes, the core kernel ABI does stay the same so that the basic syscalls will still work with the new kernel version.  So in that sense you are correct.  The real fun comes in taking the closed-source userspace binaries and making them run on a newer Android version, which is something that Lineage does regularly with older devices.  Google has, on many occasions, broken their ABIs for things like libstdc++ and other common utility libraries.  The Lineage folks then need to figure out how to make the closed source binaries work again, or steal updated binaries from devices that have been updated to the new Android version.

     

    Quote

     

    Is it possible for a non-Android developer to get a hand of the Qualcomm kernel source? That thing still falls under the GPLv3, right?

     

     

    Yes, Qcom releases kernel sources.  GPLv2, of course, not GPLv3.  The pro1 uses this tree:

     

    https://source.codeaurora.org/quic/la/kernel/msm-4.4/

     

    idealte made remarkably few changes compared to other OEMs that I've seen.  Just the stuff required for the device to run, really.

     

    • Thanks 5
  8. 1 hour ago, Gigadoc2 said:

    I think the kernel version is not really chosen by LineageOS, but dependent on the chipset manufacturer, as it has to be compatible with their closed source drivers.

    Those kernel versions tend to be very old, I have a Galaxy A5 2017 here with a 3.18.14 kernel; in 2017 upstream was already somewhere past 4.9...

    But for LineageOS for the pro1, we can look up what tdm has in his repository, and it looks like 4.4.153: https://github.com/tdm/android_kernel_idealte_msm8998/blob/lineage-16.0/Makefile

     

    Yes, as I just noted, Qualcomm chooses the base kernel for its BSP on each platform.  There are no closed source drivers in the kernel (but literally many hundreds of closed source user space binaries!)  The reason that updating kernel versions is so difficult is simply the extensive source code changes done by Qualcomm.  I tried updating kernel versions for a device about 6 years ago.  It did not go well.  I have not tried since.

     

    EDIT: And as for your concern about app developers and secure storage, my understanding is that encrypted storage is default and you must take action to use unencrypted storage.  But I have not developed apps in quite some time, so I don't know the exact details off the top of my head.

     

    • Thanks 1
  9. 3 hours ago, SteffenWi said:

    Why not just use the addresses provided by the hardware? Even if they aren't part of an assigned block, they should still be unique amongst all the Pro1 devices?

    Because there are none.

    3 hours ago, SteffenWi said:

    What kernel version does LineageOS use?

    All Qualcomm devices use the kernel that Qualcomm provides in their BSP for the device.  In this case, Qualcomm provides kernel 4.4.x for msm8998 on Android 9.  I haven't looked at the BSP for Android 10 yet, but I suspect it is probably 4.9.x.

     

    It is possible for third parties like Lineage to update to a newer kernel version.  However, given the extensive changes to the kernel sources by Qualcomm, this is a rather huge task and is very rarely done.

     

  10. 1 hour ago, david said:

    I am curious what you see as the main benefits of using file based encryption instead of full disk encryption?  And any idea why fxtec went with FDE?

    I'm not familiar with all the pros and cons. But I do know that you get partial functionality with FBE at boot, and the boot process is not interrupted half way through with a PIN entry screen.

     

    Given what I know about the development of the device, it's probably FDE because that is the BSP default and nobody took note and told the OEM to switch. But that's just my guess.

     

    • Thanks 1
  11. Oh, the one issue with switching to FBE is TWRP. If stock uses FDE and custom ROMs use FBE, there may be a need to hack something up to support both.

    And speaking of TWRP, if a good version doesn't appear by the time I've got a reasonably stable lineage build, I'll do that also. Which kind of sounds strange, as I'm the lineage recovery maintainer... 😛

     

    • Thanks 3
    • Haha 1
  12. Quick update:

     

    I found the issue with vbmeta. Unfortunately, it looks like fixing it will take another day or two.

     

    I'm going to go ahead and (try to) switch lineage to FBE for the next build so that we can ditch FDE without looking back.

     

    I also started work on plumbing in make shift mac addrs for WiFi and BT. Neither fxtec nor the OEM seem to have valid OUI blocks assigned so I'm going to steal an unassigned block.

     

    Finally, I am in the process of building a full factory package. Once that is complete, we can have a discussion about custom partitioning.

    • Like 1
    • Thanks 9
  13. 7 hours ago, elvissteinjr said:

    While I do share your opinion, I think you kind of misunderstood as normally EDL can be entered as said:

    The copper wire is the worst-case rescue scenario if you managed to break your boot loader entirely. At least that's how I understand it.
    What remains to me is the question how to break that boot loader if EDL is sitting in a true read-only ROM? Or is entering EDL mode via buttons only part of the flashed boot loader?

    There are three stages in the boot process that may enter EDL.

     

    The first is in the primary boot loader (PBL), which is in true ROM. It checks a specific pad on the mother board is shorted. This requires disassembling your device to activate.

     

    The second is in the secondary boot loader (SBL), which is in UFS (eg. flashable). It checks the USB data pin is shorted. This is what an EDL cable (or copper wire trick) triggers.

     

    The third is in the "aboot" or modern equivalent, aka the "boot loader" to Android, which is of course in UFS. It checks for both volume keys to be pressed.

     

    It is rather uncommon to kill aboot and nearly unheard-of to kill SBL.

     

    • Like 1
    • Thanks 2
  14. 35 minutes ago, SteffenWi said:

    okay, I rebooted disconnected my USB Hub and any other USB devices except my keyboard. Then connected the Pro1 first with a USB 2 cable to a USB 2 slot, which didn't work. Then tried a USB 3 cable to a USB 3 slot and that worked. Finally.

     

    Anyway, when trying to sideload the zip file I got an error. Full output.

    
    Opening update package...
    Installing update...
    E: Package is for product FxTecPro1 but expected QX1000
    
    Restarting adbd...
    E:Failed to open driver control: No such file or directory
    Installation aborted.
    Stopping adbd...
    E:Failed to open driver control: No such file or directory
    E:Failed to open driver control: No such file or directory

    Seems like they use a different name for the model compared to the pre-production thing you have.

    That is entirely my fault, sorry. 😞 I changed the product name to match the OEM software last week, and apparently I copied the boot image out prior to making that change.

     

    I will get a new test build out soon.  Today is rather busy, so probably tomorrow.

     

    • Thanks 1
  15. 24 minutes ago, SteffenWi said:

    @tdm as for flashing, I'm stuck at

    
    fastboot flash boot_a ~/Downloads/lineage-16.0-pro1-test1-boot.img 

    it gets stuck there with

    
    Sending 'boot_a' (65536 KB)

    and just hangs there. I repeated two times by restarting the bootloader without success. I waited for ~10 minutes for it to do anything but no success.

    
    fastboot devices

    does output the Pro1.

    I made sure to be connected via USB2 and I tried differen USB cables.

     

    I have never seen that before.  But there is no need to wait for 10 minutes.  The actual flashing process should take less than 5 seconds for the boot image.

     

    You can try different USB ports on your computer.  Sometimes some ports do not work for unknown reasons.  It looks like you are running Linux, so try flashing as root to ensure there are no permission issues.  If nothing works, you can contact me privately and we can try to figure it out.

     

  16. 53 minutes ago, silversolver said:

    Is this access costly to acquire, or can one gain such power with common household tools and esoteric but financially accessible software?

    Well it depends what you mean. The protocols are qcom proprietary. I have the specs because I worked on this stuff at cyngn. The factory package for the Pro1 has been shared to developers by FxTec.

     

    As for EDL cables, they should not be needed unless something goes very wrong. The Pro1 boot loader enters EDL if you hold both volume keys when you power it on. And in a pinch you can McGuyver it with a small strand of copper wire and a steady hand.

     

    • Like 1
    • Confused 1
  17. 4 minutes ago, silversolver said:

    I'd LOVE to know what all those tools are! Are we discussing something beyond fastboot + USB? It seems like that would be all that's needed.

    It's called EDL, also sometimes called "deep flash". This is a protocol baked into the device boot ROM (real ROM -- read only memory). The factory uses this to flash the device from scratch. I have access to it.

     

    • Like 2
    • Thanks 2
    • Confused 1
  18. 31 minutes ago, kontakt said:

    I quite like the seamless updates ... and coming from a device where I needed to reflash the partition information (Oppo find7) I can tell that the forums are full of people who either bricked their device or failed to switch.

    Seamless updates are pretty much the one and only reason for A/B to exist. There is a tradeoff with data though -- you lose about 4gb of data storage. That's not insignificant.

     

    As for the find7, people tried to provide hacked up partitioning solutions. There were bound to be bricked devices. I used a find7 and loved it back in 2014, but unfortunately I never got the time to do a proper partition flash tool.

     

    I have all the tools that I need to completely rebuild and reflash the Pro1 just like the factory does. It's literally impossible to fully brick when you have these tools.

     

    I know some people would be nervous about doing a full EDL flash. So perhaps the best idea might be to make two device variants, like some devs did with the find7/find7u.

     

    Any more thoughts?

     

    • Confused 1
  19. 2 hours ago, SteffenWi said:

    Just FYI because it took me > 2 minutest  to find anything on this: The A/B issue with gapps is described here -> https://lineageos.org/Changelog-19/

    I am surprised the A/B issue with gapps issue has gone on for so long.  The Pro1 is my second A/B device (the first being 1+6t) and I'm getting rather irritated with the situation.  Hopefully someone can do something to fix this soon.  For my part, I think I'm going to start doing my personal builds with bundled gapps.

     

    Another thought is to just re-pave the Pro1 without A/B support.  And switch from FDE to FBE while I'm at it.  This would solve several issues:

     * No more A/B compatibility headaches.

     * Gain an extra ~4gb or so for data.

     * Allow system boot without stopping at the PIN entry screen.

     

    Of course, this would require a full EDL flash to switch from stock <-> lineage.  But you only do that on very rare occasion.

     

    Does anyone have any strong thoughts on this idea?

     

    • Thanks 1
  20. 15 minutes ago, phix said:

    Any trouble? The link only contains this error message: "The service is not available. Please try again later."

    It works for me.  Is anyone else having issues?

    files.nwwn.com should have address 144.91.102.195.  I switched servers in the last few days but DNS should have been updated some time ago.

     

    EDIT: reproduced the issue, investigating.

    EDIT: the issue seems to be IPv6.

    EDIT: fixed, new IPv6 address should propagate within an hour.

     

    • Like 5
    • Thanks 1
×
×
  • Create New...

Important Information

Terms