Livecasting porting notes for Zenfone 8

Day 17, Season 2

jolla-camera-hw.txt

[apps/jolla-camera]
backCameraLabels=['1x', '0.5']
maxVideoResolution='2048x1080'

Fingerprint…
device/asus/sake/fod/FingerprintInscreen.cpp says

Return<int32_t> FingerprintInscreen::getPositionX() {
    return 435;
}

Return<int32_t> FingerprintInscreen::getPositionY() {
    return 1631;    
}

Following instructions from GitHub - sailfishos-open/sailfish-fpd-community: Sailfish OS fingerprint support

This is my previous fork from sailfish-open that had some hacks to work with the Mi Note 10.

git clone https://github.com/b100dian/sailfish-fpd-community.git hybris/mw/sailfish-fpd-community
[HABUILD_SDK]$ make libbiometry_fp_api

Then

git clone https://github.com/erfanoabdi/fake_crypt.git external/fake_crypt
[HABUILD_SDK]$ make fake_crypt

Which fails:

external/fake_crypt/Keymaster4.h:27:10: fatal error: ‘keymasterV4_0/Keymaster.h’ file not found
#include <keymasterV4_0/Keymaster.h>

A quick find shows hardware/interfaces/keymaster/4.1/support/include/keymasterV4_1/Keymaster.h
So 4.0 becomes → 4.1
That could be a quick change…

However, the build still fails (not finding keymasterV4_1/Keymaster.h). And it still contains this include -Ihardware/interfaces/keymaster/4.0/support/include line.

Hmm… Let’s proceed without it since I have a keymaster service, maybe fake_keymaster is not needed.

[PlatformSDK]$ hybris/mw/sailfish-fpd-community/rpm/copy-hal.sh
droid-biometry-fp-0.0.0/out/target/product/sake/system/lib64/libbiometry_fp_api.so
[PlatformSDK]$ rpm/dhd/helpers/build_packages.sh --build=hybris/mw/sailfish-fpd-community --spec=rpm/droid-biometry-fp.spec --do-not-install

The ‘–do-not-install’ option is not needed anymore and is currently ignored

  • Building rpm/droid-biometry-fp.spec
    Setting version: 1.1.2+lineage.18.1.20230510180255.25842be
    error: Unable to open /mnt/datas/sake/hadk/hybris/mw/sailfish-fpd-community/.mb2/spec: No such file or directory
    error: query of specfile /mnt/datas/sake/hadk/hybris/mw/sailfish-fpd-community/.mb2/spec failed, can’t parse
  • Check /mnt/datas/sake/hadk/hybris/mw/sailfish-fpd-community.log for full log.

That log has the same contents. That .mb2/spec file exists though.
Hmm… that error goes away by just exiting and re-entering sfossdk. Stale something…?

The package goes directly to OBS’s droid-hal-device, as do all packages of Android bits:

[PlatformSDK]$ cp droid-local-repo/sake/droid-biometry-fp-1.1.2+lineage.18.1.20230510180255.25842be-202305101841.aarch64.rpm ~/osc/nemo\:devel\:hw\:asus\:sake/droid-hal-sake/
[PlatformSDK]$ cd ~/osc
[PlatformSDK]$ osc add droid-biometry-fp-1.1.2+lineage.18.1.20230510180255.25842be-202305101841.aarch64.rpm 
[PlatformSDK]$ osc commit

The other two packages I copy their definitions from my previous port:

[PlatformSDK]$ osc copypac nemo\:devel\:hw\:xiaomi\:tucana/sailfish-fpd-community-test nemo\:devel\:hw\:asus\:sake/
[PlatformSDK]$ osc copypac nemo\:devel\:hw\:xiaomi\:tucana/sailfish-fpd-community nemo\:devel\:hw\:asus\:sake/

Ok, now zypper them in.

sailfish-fpd-community[25580]: library "android.hardware.biometrics.fingerprint@2.1.so" not found

Hmm… that was available at compile time and now it is not?

Detour:

Testing zip install

Let’s take a break and test a zip file. Reboot, hold power-up.

$ sudo fastboot boot twrp-3.7.0_12-0-I006D.img
Sending 'boot.img' (98304 KB)                       

Seems locked. “Restart bootloader”
Same “result” the 2nd and 3rd time.

Changing cable… (to the original one) and it works. Maybe just luck.
Actually it does not, it is stuck at ASUS logo.
Hold Power + Vol Dn, on logo dissapearence - hold Vol Up. Again. Stuck at logo.

Let’s try previous TWRP.
$ sudo fastboot boot twrp-3.6.1_11-0-I006D.img
This one is stuck at another logo:) The charging one.
Let’s try a second time. Asus logo. Stuck.

Third cable, the Xiaomi one I flashed A11 with.
$ sudo fastboot boot twrp-3.7.0_12-0-I006D.img
Stuck at Asus logo.
$ sudo fastboot boot twrp-3.6.1_11-0-I006D.img
Stuck at the charging logo

This might not be a cable issue only, after all.
Booting normally actually ends up in battery charging mode of sailfishos too:)
I use the “occasion” to issue /usr/libexec/droid-hybris/system/bin/bootctl commands to mark boot successful and switch slots, from 1 to 0
I expect a ramdump on reboot since in this state I think the modem driver will be upset.
And ramdump it is. Unfortunately no logs, as I was using journalctl and that was probably cut off earlier than dmesg is.

Darn. Let’s flash twrp

$ sudo fastboot flash boot twrp-3.7.0_12-0-I006D.img 
Sending 'boot_a' (98304 KB)                        OKAY [  3.359s]
Writing 'boot_a'                                   OKAY [  0.196s]

No it doesn’t start. Not even by selecting “Recovery mode”
There must be something about the device that I changed… some other thing.

Let’s flash Lineage boot. (Danger! I remember if I don’t get this right it may while my /data)
Using “Recovery mode” AND holding VolDn just to be shure - it boots. Whew
Pusing “adb shell push sailfishos-sake-release-4.5.0.19-alpha2.zip /data”
But I can’t find what to do with it.
As much as I grep sources from lineage recovery, I don’t understand how to use the zip file which has an “udpater-script.sh”
(android_bootable_recovery/updater.h at lineage-18.1 · LineageOS/android_bootable_recovery · GitHub)
Actually, it does look as it is used in an updater_main.cpp that is in a an executable module named ‘updater’, but that binary is not in path, so maybe it was not compiled in.
So the only thing I can test if it can unzip and untar. And that works, thankfully, so if I boot twrp…

Manual installation instruction written Sailfish on Zenfone 8 · GitHub


/end detour

Back to that fpd error. “android.hardware.biometrics.fingerprint@2.1.so” not found.
Let’s grep the filenames on device:

# find / -type f -iname android.hardware.biometrics\*
/apex/com.android.vndk.v30/lib64/android.hardware.biometrics.face@1.0.so
/apex/com.android.vndk.v30/lib64/android.hardware.biometrics.fingerprint@2.1.so
/apex/com.android.vndk.v30/lib64/android.hardware.biometrics.fingerprint@2.2.so
/apex/com.android.vndk.v30/lib/android.hardware.biometrics.face@1.0.so
/apex/com.android.vndk.v30/lib/android.hardware.biometrics.fingerprint@2.1.so
/apex/com.android.vndk.v30/lib/android.hardware.biometrics.fingerprint@2.2.so
/apex/com.android.vndk.v30@1/lib64/android.hardware.biometrics.face@1.0.so
/apex/com.android.vndk.v30@1/lib64/android.hardware.biometrics.fingerprint@2.1.so
/apex/com.android.vndk.v30@1/lib64/android.hardware.biometrics.fingerprint@2.2.so
/apex/com.android.vndk.v30@1/lib/android.hardware.biometrics.face@1.0.so
/apex/com.android.vndk.v30@1/lib/android.hardware.biometrics.fingerprint@2.1.so
/apex/com.android.vndk.v30@1/lib/android.hardware.biometrics.fingerprint@2.2.so
/vendor/etc/init/android.hardware.biometrics.fingerprint@2.1-service.rc
/vendor/etc/vintf/manifest/android.hardware.biometrics.fingerprint@2.1-service.xml
/vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service

So it seems it uses 2.1 version services, but also has 2.1 and 2.2 libraries.
Let’s link one of the 2.1 ones to /odm/lib64:

# ln -s /apex/com.android.vndk.v30/lib64/android.hardware.biometrics.fingerprint@2.1.so /odm/lib64/
# systemctl restart sailfish-fpd-community

library “android.hardware.biometrics.fingerprint@2.1.so” needed or dlopened by “/usr/libexec/droid-hybris/system/lib64/libbiometry_fp_api.so” is not accessible for the namespace [name="(default)", ld_library_paths="/usr/libexec/droid-hybris/system/lib64:/vendor/lib64:/system/lib64:/odm/lib64", default_library_paths="/system/lib64:/system_ext/lib64", permitted_paths="/system/lib64/drm:/system/lib64/extractors:/system/lib64/hw:/system_ext/lib64:/system/framework:/system/app:/system/priv-app:/system_ext/framework:/system_ext/app:/system_ext/priv-app:/vendor/framework:/vendor/app:/vendor/priv-app:/system/vendor/framework:/system/vendor/app:/system/vendor/priv-app:/odm/framework:/odm/app:/odm/priv-app:/oem/app:/product/framework:/product/app:/product/priv-app:/data:/mnt/expand:/apex/com.android.runtime/lib64/bionic:/system/lib64/bootstrap"]

Ok, soft link doesn’t cut it.

# touch /odm/lib64/android.hardware.biometrics.fingerprint@2.1.so 
# mount -o ro,bind /apex/com.android.vndk.v30/lib64/android.hardware.biometrics.fingerprint@2.1.so /odm/lib64/android.hardware.biometrics.fingerprint@2.1.so
# systemctl restart sailfish-fpd-community

Adding the sake 435 and 1631 coordinates to /usr/share/sailfish-fpd-community-test/qml/pages/EnrollPage.qml

Rectangle {
        x: 435
        y: 1631
        width: 220
        height: 220
        radius: 220

(previous values were from Mi Note 10)

Then starting the test app with the white circle rectangle to give inscreen fingerprint a chance…

Error while starting to enroll: -1

05-11 21:44:39.185  5512  5517 E rpmb_ufs: Unable to open /dev/0:0:0:49476 (error no: 2)
05-11 21:44:39.186  5555  5555 E KeymasterUtils: rsp_header->status: -30

Maybe I need that fake_crypt package though.
I look at the compile error and at the Android.mk still had a reference to 4.0 by listing libkeymaster4support, instead of libkeymaster4_1support (as I’ve found out looking in hardware/interfaces/keymaster/4.1/support/Android.bp)

All in all, both were needed, plus some changes that were not needed actually… Comparing erfanoabdi:master...b100dian:keymaster41 · erfanoabdi/fake_crypt · GitHub

Built droid-fake-crypt, commit to OBS, zypper in…
Still fails to enroll, -1.

Journal:

May 12 02:29:48 Zenfone8 sailfish-fpd-community[12109]: void AndroidFP::enroll(uid_t) 100000
May 12 02:29:48 Zenfone8 systemd[1]: sailfish-fpd-community.service: Main process exited, code=killed, status=11/SEGV

Logcat continues to have

rpmb_ufs: Unable to open /dev/0:0:0:49476 # process is /vendor/bin/qseecomd
KeymasterUtils: rsp_header->status: -30 # process is /vendor/bin/hw/android.hardware.gatekeeper@1.0-service-qti

Great. Vendor services for which I don’t have sources.
qseecomd is one that I made dev/ufs-bsg available to, for rpmb-something errors, on day 29, before-GUI…

2 Likes

Video killed the Radio Star. La lah, la lah, la lah.

2 Likes

Thanks for reminding me, this thing has an FM radio (region dependent), I should look into that too :joy:

4 Likes

Thanks for reminding me at the late 70’s! Oh, ohohoh -ooh :heart_eyes:

Day 18, Season 2

Daily driving experience:
50% in the evening (18hours?), without wifi, of course.
Youtube displayed decoding errors in the bottom part of video - this was because I uninstalled gecko-camera-droid-module for some tests.
I re-install it, the decoding is fine now visually - but the stream is interrupted often, reloads, and at Nth interruption youtube displays an error which is very hard to escape from in fullscreen mode - TODO reproduce, but it was a null inside some browser js file.
The bluetooth pods need manual volume control to be useable.
The screen does not seem to turn off by itself although it is set to sleep after 30 seconds.
I really like the size! But the punch hole is sometimes exactly where you have to click… e.g. in Angelfish when you press back.

That youtube error:

gecko-camera[30338]: droid-codec error:774 – Hardware error 4
JavaScript error: resource://gre/actors/AudioPlaybackParent.jsm, line 19: TypeError: browser is null

There is definitely something wrong about :warning: video playback. I don’t seem to be able to finish playing back videos from my own camera, or even quickddit ones.
Something to look into next…


Back to qseecomd that seems to prevent fingerpring enroll:
On day 29 I linked /dev/bsg/ufs0 from /dev/ufs0 so qseecomd finds it and doesn’t bring the system down.
Now it says it doesn’t find /dev/0:0:0:49476 but guess where that is… it’s in /dev/bsg/0:0:0:49476 of course.
I could make one more link (would that number change?) or just… find the cause!

There is also this boot cmdline appended by either vendor or the bootloader: androidboot.fused.norpmb=1

But regardless, looking through the same strings /vendor/lib64/librpmb.so where I found that /dev/ufs0 link, I also find the exact /dev/0:0:0:49476 reference which is as static as can be, burned inside an executable.
There is also reference to /system/etc/rpmb_sec_parti.cfg, a file that I (so nor did Lineage) have.

I need to remember how to mount super.img partitions on my host to inspect if that file is in asus system.img
But let’s try that device “temporarily”:

# ln -s /dev/bsg/0\:0\:0\:49476  /dev/0\:0\:0\:49476

Logcat:

19:44:05.452  5503  5509 E rpmb_ufs: SCSI error occurred!!
19:44:05.452  5503  5509 E rpmb_ufs: ----------------------------------------------------
19:44:05.453  5503  5509 E rpmb_ufs: scsi_bsg_ioctl: Error from sg_io info (check sg info: device_status: 0x2, transport_status: 0x0, driver_status: 0x8, Sense Key code: 0x6)
19:44:05.453  5503  5509 E rpmb_ufs: ----------------------------------------------------
19:44:05.453  5503  5509 E rpmb_ufs: rpmb_ufs_read: Error sending SPO through scsi_bsg_ioctl (return value: -11, error no: 2, iter: 0, retries remain 3)
19:44:05.453  5503  5509 E rpmb_ufs: scsi_bsg_ioctl: Error from sg_io ioctl (return value: -1, error no: 25)
19:44:05.453  5503  5509 E rpmb_ufs: rpmb_ufs_read: Error sending SPO through scsi_bsg_ioctl (return value: -1, error no: 25, iter: 0, retries remain 2)
19:44:05.453  5503  5509 E rpmb_ufs: scsi_bsg_ioctl: Error from sg_io ioctl (return value: -1, error no: 25)
19:44:05.453  5503  5509 E rpmb_ufs: rpmb_ufs_read: Error sending SPO through scsi_bsg_ioctl (return value: -1, error no: 25, iter: 0, retries remain 1)
19:44:05.458  5545  5545 E KeymasterUtils: rsp_header->status: -30
19:44:06.239    19    19 I (CPU    : 2-pid:16365:sailfish-fpd-co) [19:44:05.459836689] Core dump to |/usr/sbin/rich-core-dumper disabled

Wow, a SCSI error :-S

Let’s “restart” qseecomd. Since it doesn’t respond to setprop crl.stop qseecomd, I just kill it and is back again.
Error while staring to enroll: 3 wohoo, NEW ERROR!

05-12 19:49:58.345 6662 7996 D [GF_HAL][CustomizedFingerprintCore]: [notifyAcquiredInfo] transfer acquired info: 1001 to customized: 1010.

This sounds very familiar. I have my Mi Note 10 notes on this: it was the same message, but with “1002 to customized: 1022”.
I don’t have debug messagess enabled in droid-biometry, let’s enable that.

Then android make it, and SDK package it…

[HABUILD_SDK]$ make libbiometry_fp_api
[PlatformSDK]$ hybris/mw/sailfish-fpd-community/rpm/copy-hal.sh
[PlatformSDK]$ rpm/dhd/helpers/build_packages.sh --build=hybris/mw/sailfish-fpd-community --spec=rpm/droid-biometry-fp.spec

Looking at logcat while starting enroll:
The process /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service opens /dev/goodix_fp

Stracing it, and looking at dependencies:

Interesting strings /vendor/lib64/hw/fingerprint.default.so

/home/gilbert/g6/delmar/customized/goodix/delmar_public_standard/fingerprint.default/fingerprint.cpp
[%s] CUSTOMIZED_FINGERPRINT_CMD_FINGER_DOWN.
[%s] CUSTOMIZED_FINGERPRINT_CMD_FINGER_UP.

Interesting strings /vendor/lib64/libgf_hal.so

(lots of csv patterns to dump data like `%s/%s/%s_sensor%d_iq-rawdata.csv`) (lots of config stuff like "support-anti-peep=%d") > [%s] GOODIX_FP_PACK : %s Vendor ID = %d > vendor.goodix.disable.study > vendor.gf.debug.dump_data > /proc/driver/fp_xy > /vendor/firmware > /system/etc/firmware > /firmware/image > /vendor/firmware_mnt/image > goodixfp64 > keymaster64 > [%s] Don't dump anything for GF_ERROR_TOO_FAST > [%s] Don't dump anything for GF_ERROR_SPI_RAW_DATA_CRC_FAILED > vendor.goodix.debug.dump_talog_data > /data/vendor/goodix/gf_data/ta_log > /data/algo-params-log.txt > /data/algo-log-aut.txt > /data/mem-log.txt > vendor.goodix.debug.write_talog_data > /gf_data/kb_calibration/ > vendor.debug.pre_dump_rawdata > /gf_data/encrypted_data/ > /data/gf_etc/ > gf_sensors.conf > /data/vendor/goodix/fpdata/ >

This one is also interesting

enrollTimerThread postEnroll vendor.goodix.sensor.status [%s] fp property_set 2 onEnrollError [%s] gid=%d, fid=%d, remaining=%d. notifyEnrollProgress [%s] fp property_set 1 onAuthRequested [%s] Authenticate. authenticate [%s] Auth Down. onAuthDownEvt

And a bunch of other constants

GF_SUCCESS GF_ERROR_BASE GF_ERROR_OUT_OF_MEMORY GF_ERROR_OPEN_TA_FAILED GF_ERROR_MODULE_NOT_INITED GF_ERROR_BAD_PARAMS GF_ERROR_NO_SPACE GF_ERROR_MEMORY_COPY_FAILED GF_ERROR_REACH_FINGERS_UPLIMIT GF_ERROR_NOT_MATCH GF_ERROR_CANCELED GF_ERROR_TIMEOUT GF_ERROR_PREPROCESS_FAILED GF_ERROR_GENERIC GF_ERROR_ACQUIRED_PARTIAL GF_ERROR_ACQUIRED_IMAGER_DIRTY GF_ERROR_DUPLICATE_FINGER GF_ERROR_OPEN_DEVICE_FAILED GF_ERROR_HAL_GENERAL_ERROR GF_ERROR_HAL_FILE_DESCRIPTION_NULL

Also, searching github for
I found this: Goodix_Fingerprint/gf_fingerprint.h at a03453905b3d1514a4b89b68af4ac4b6cd44c26a · lbule/Goodix_Fingerprint · GitHub

typedef enum gf_fingerprint_acquired_info {
    GF_FINGERPRINT_ACQUIRED_GOOD = 0,
    GF_FINGERPRINT_ACQUIRED_PARTIAL = 1,
    GF_FINGERPRINT_ACQUIRED_INSUFFICIENT = 2,
    GF_FINGERPRINT_ACQUIRED_IMAGER_DIRTY = 3,
    GF_FINGERPRINT_ACQUIRED_TOO_SLOW = 4,
    GF_FINGERPRINT_ACQUIRED_TOO_FAST = 5,
    GF_FINGERPRINT_ACQUIRED_VENDOR_BASE = 1000,
    GF_FINGERPRINT_ACQUIRED_WAIT_FINGER_INPUT = 1001,
    GF_FINGERPRINT_ACQUIRED_FINGER_DOWN = 1002,
    GF_FINGERPRINT_ACQUIRED_FINGER_UP = 1003,
    GF_FINGERPRINT_ACQUIRED_INPUT_TOO_LONG = 1004,
    GF_FINGERPRINT_ACQUIRED_DUPLICATE_AREA = 1005,
    GF_FINGERPRINT_ACQUIRED_DUPLICATE_FINGER = 1006
}

So 1001 is “wait finger input”, but 1001 to customized: 1010
1002 is “finger down”, but 1002 to customized: 1001
I think 1003 (“finger up”) will be 1002

Keying the above numbers in. make libbiometry_fp_api, packaging rpm, scp-ing.

Nope. The events are not “just sent” when I touch the screen in enroll mode, as they were on my previous Xiaomi.
You see, Lineage probably manually calls FingerprintInscreen::onPress and onRelease from the FOD GUI.
On Xiaomi, I was able to deduce that the fingerprint driver is doing that already, and I had to just redirect the vendor codes to their respective lineage implementations.

Here, I will have to do this myself. Which is a problem, since I do not have a GUI for fingerprint:

  • sailfish-fpd-community-test is hackable
  • sailfish homescreen less so

Maybe listening directly to the touchscreen events, but needs more debugging to see that at least manually it would work…

1 Like

I’ve been trying to figure that out for ages. If you launch my moremahjong in a terminal, you’ll also see that error.
EDIT: JavaScript error: resource://gre/actors/AudioPlaybackParent.jsm

But, just checked now and on 4.4.0.72 it’s not apparent anymore. Nor on 4.5.0.19.

This is all so exciting that I have now created an account for the forum to not only passively read along. I have a ZF8 (8/128) here that I bought with Android 13. Using the flash scripts provided on the Asus site (for those who want to get out of the beta program for new Android versions), I downgraded it first to A12 and then to A11.

Now I’m still hesitating whether to risk unlocking it… :wink:

Do you need any more information about the “small” model?

I now also had the time to try some stuff with my Zenfone 8.
It also arrived with Android 13 but I couldn’t manage to downgrade so far. I think there is something wrong with fastboot, I will try to use another computer. When using the downgrade-script I just receive the message “get hwid failed”. — EDIT: I was in fastboot mode but phone must be in bootloader for it to work.

You have time to think about it. Unlocking is not possible at the moment - the app for unlocking needs to connect to ASUS’ servers which are currently offline due to maintenance.

Oops.

The worrisome part here is:

Please note that as per our HQ there’s a System Maintenance until the period on May 2, 2023, till further notice.
The Unlock app service is currently under maintenance, and the service will be suspended during the maintenance period.

May 2, 2023 is over by two weeks… I hope they’ll bring it up again. Let’s hope System Maintenance and Unlock App have different time lines and will be back soon.

Edit: maybe we should monitor this thread: https://zentalk.asus.com/t5/zenfone-8/when-will-the-unlock-device-app-work-again/td-p/368748

1 Like

I found the reason: I put the phone in fastboot mode but you have to be only in the bootloader.
Starting the phone with Volume Up + Power button, wait until it says “Start” and leave it in this mode. Then the script works.

Installed version of adb+fastboot of my system doesn’t change anything since the downgrade script ships with it’s own fastboot.

So the downgrade worked? I am glad about that!

But on the other hand, I’m a bit bummed that my nice plan to work with this port on this phone for the next few years might fail due to Asus’ possible unwillingness to allow an unlock.

Yes, it worked. Now I’m playing a bit around with Android 11 but … what the heck … since my last Android experience (Lineage on Fairphone 2) there has changed some stuff. Not in a good way. Strange gestures. Annoying notifications which can’t be muted or dismissed. It turns totally crazy when you disable Play Services. The pull-down menu is absolutely messy.
Now I understand why screens become bigger and bigger - you need that much space to see the interesting things between all the unnecessary stuff :sweat_smile:

2 Likes

@nasi @multispeedlurker Thanks for joining the discussion! I hope the unlocking services become available soon™️!
Can you folks and/or @pansen-jim comment on the standby power drain with and without wifi? Like percentage/hours, and which Android version you used. I might need to start looking for “other wifi drivers” if that is even possible, the current one makes the device last only a day if wifi is on… Thanks!

Thanks. I asked the customer support via their contact form. I’ll report back.

I’m not at home atm, but I can start checking on Monday. In principle, I don’t really want to use it with Android :smiley: But checking standby-time is something which I will be able to endure.

Thanks for your efforts, if I can manage to unlock, it will surely be a nice device!

1 Like

Of course measure this at your own pace. Just as I am updating here.
I should also study how to install without needing twrp, but ping me if you need to install sooner than I do that, there are some instructions on Sailfish on Zenfone 8 · GitHub but they probably need more love.
Thanks!

1 Like

Do you have an idea how to prevent auto-upgrading? As soon as I switch on wifi, this stupid Android starts downloading the upgrade :thinking:

Do you think it is necessary that it is connected to a wifi? Or would it be sufficient to have it switched on but not connected?

Switched on but not connected is fine.

There must be a setting next to the one checking for updates, to automatically upgrade over wifi, that can be switched off

Settings → System → System Update → Gear Icon in upper right corner
But for some reason it was greyed out when I tried to set it. Later I came to this setting via the update notification and it was not greyed out. I’ve deactivated automatic update, now it’s greyed out again. Pretty strange.
And it’s still asking very often if it should resume update. Annoying.

I disabled or removed most of the standard apps (Gmail, Maps, Play Store etc.) but Play Services are still enabled. I’ve charged to 80% and phone was just lying around.
With WiFi enabled and connected I was on 78% after 4hrs and 73% after 20hrs.
With WiFi disabled I was on 79% after 4hrs and 73% after 26hrs.
I’ve installed “BatteryBot Pro” which said 22hrs until drained on 80% without WiFi and 19hrs until drained on 80% with WiFi enabled.

EDIT: now BatteryBot Pro tells me there are 5days 11hrs left until drained while having 72% battery. Maybe this measurement is not very reliable or it’s still “learning”.

2 Likes

I think that measurements by me are not longer needed which makes it possible for me to let the phone switched offuntil an unlock becomes possible again :slight_smile:

2 Likes