Related
I DID NOT MAKE THIS ROM!!!!!! - A developer by the name of TheKit made this rom, so do not give me any credit for this rom, give it all to them.
I am simply linking it because I love this phone, I love Sailfish OS on it, and I think a lot of people would enjoy Sailfish OS on it as well and just don't know it is available.
Q: "What is Sailfish OS and why should I use it?"
A: Sailfish OS is a great OS for many reasons. Having used multiple android roms I can attest to the fact that:
1. It has MUCH better battery life (however it has a weird battery read bug, see issues below)
2. It is MUCH faster and generally more stable when it comes to the things that work (your calls won't drop, your system won't lock up due to lack of ram, etc.)
3. It has a great gesture driven UI that is a joy to use and very gorgeous to look at. No more of this all white bull**** Google has been forcing down our throats since 2014
Q: "How good is the battery life?
A: After a day of playing cave story at work and reading discord and listening to music, I am at about 30-40% end of day (I start at 8:30AM, stop at 4:00PM)
Okay now that the Q/A segment is over, lets get to the real meat
ISSUES
1. Battery Read is wonky, it only goes in 10% increments until it reaches 20%, then it starts going in 5% increments
2. If you use the 2.1.3.7 build keyboard backlight is broken, but it works fine on the 2.1.0.11 build
3. Bluetooth is wonky, I was able to play audio through speakers in the 2.1.3.7 build...
4. FM Radio is broken too
5. As the maemo-talk thread says, CDMA is untested, and like on Photon Q, most likely does not work. GSM works great though! :good:
6. The old 2.1.0.11 build has a slew of issues compared to the new 2.1.3.7 build. These include data not working out of box, wifi requiring a reboot to work, and auto rotation not working in a majority of apps by default. Consult this thread and the maemo talk thread for more help, and if you want rotation anywhere, install patchmanager 2.0 and auto rotate anywhere from warehouse for sailfish os.
Alien Dalvik install tutorial
I did not make this and do not know who did. the developer claims someone threw a brick at them with an sd card attached. The sdcard contained links to these files in the form of a text file names "monkeyAIDS.txt"
https://drive.google.com/file/d/1mS6di1jYfVeDoFBjcANS6SmfkhGyEKoa/view - AD Jolla C (different from the Turing phone rpm, this is built for 3.1.x kernels)
http://sfos.scanf.su/maserati/alien-patched.tar.gz
So extract both files to your ~/ (home) directory and type in the following:
devel-su
[insert root password you set in settings]
zypper in [alien dalvik rpm]
rsync -a /home/nemo/alien/ /opt/alien/
ln -s /vendor /opt/alien/system/vendor
reboot
OPTIONAL: fix for the default 320PPI value
devel-su
[insert root password]
vim /opt/alien/system/build.prop
change ro.sf.lcd.density to the value of your choosing (Droid 4 is 256)
Keyboard Backlight Fix, works on 2.1.0.11, don't know about 2.1.3.7 -- Thank you @moodroid for this legendary patch!
On <2.1.3.7, I got the keyboard backlight to work by creating an /etc/mce/20backlight.ini with:
[KeyPad]
BrightnessDirectory=/sys/class/leds/keyboard-backlight
Then do 'pkcon install mce' and 'systemctl restart mce'.
Download Links
Here is the thread with the Download Link to the 2.1.0.11 build
https://talk.maemo.org/showthread.php?t=99031&page=9
If you don't mind a lack of keyboard backlight and want a more up to date build, grab the new and fabulous leaked 2.1.3.7 Build:
https://drive.google.com/file/d/1k3MOCrMvbFb114Omf0MzSvnQ7wBkTiWH/view?usp=sharing
Basically if you are fed up with how ****ty the latest Lineage OS builds are and just want to try something new, give this a try. Why not? What have you got to lose. All in all great work by TheKit and I am very happy with the port as it is and I think you will be too.
Hi,
On <2.1.3.7, I got the keyboard backlight to work by creating an /etc/mce/20backlight.ini with:
[KeyPad]
BrightnessDirectory=/sys/class/leds/keyboard-backlight
Then doing 'pkcon install mce' and 'systemctl restart mce'.
Hope you get the OK to share your AD success!
Thanks
moodroid said:
Hi,
On 2.1.3.7, I got the keyboard backlight to work by creating an /etc/mce/20backlight.ini with:
[KeyPad]
BrightnessDirectory=/sys/class/leds/keyboard-backlight
Then doing 'pkcon install mce' and 'systemctl restart mce'.
Hope you get the OK to share your AD success!
Thanks
Click to expand...
Click to collapse
dude you are a legend!
I would add that to the OP but you are first comment so anyone viewing the op will see this. I will definitely tell TheKit about this (then again, he gave you the 2.1.3.7 build so you can just tell them yourself)
Greetings,
I've been playing around with SailfishOS on my Droid 4 in the past few days, and I have a few questions about the whole thing. TheKit publicly shared a 2.1.3.7 build for the Droid 4 on his thread at Maemo, is that the one you are talking about or is it a different build? As someone mentioned this specific build seems to have issues with wifi, and I have the same problem. I can't post links, but the download link to the build I mentioned is on page 12.
The 2.1.0.11 build seems to work fairly well, however I wasn't able to install Alien Dalvik. After the installation the "Android Support" button does show up in the settings app, however nothing happens when I click the start button. I also attempted installing an apk both via the GUI (by clicking on it in the downloads) and via the command line by using "apkd-install", but it doesn't seem to work. Full log of the installation process attached.
I talked with TheKit, and the 2.1.3.7 build I mentioned (the one at page 12) is indeed outdated. He just updated the OP at Maemo and added the latest 2.1.3.7 build, which I just flashed and it's working great. Also installed Alien Dalvik following the instructions in the OP and it seems to be working fine as well! However I wasn't successful with the backlight fix method yet.
For anyone wondering how I flashed the latest build I went CM11 --> SailfishOS 2.1.0.11 --> SailfishOS 2.1.3.7 (rel2).
NIKKOS said:
I talked with TheKit, and the 2.1.3.7 build I mentioned (the one at page 12) is indeed outdated. He just updated the OP at Maemo and added the latest 2.1.3.7 build, which I just flashed and it's working great. Also installed Alien Dalvik following the instructions in the OP and it seems to be working fine as well! However I wasn't successful with the backlight fix method yet.
For anyone wondering how I flashed the latest build I went CM11 --> SailfishOS 2.1.0.11 --> SailfishOS 2.1.3.7 (rel2).
Click to expand...
Click to collapse
Hi Nikkos,
Sorry - that was me that posted the backlight fix, and I agree that it doesn't work on 2.1.3.7-rel2. It'd worked on every other version I tried, and I've now edited my post above. Glad everything is working.
Sorry again
moodroid said:
Hi Nikkos,
Sorry - that was me that posted the backlight fix, and I agree that it doesn't work on 2.1.3.7-rel2. It'd worked on every other version I tried, and I've now edited my post above. Glad everything is working.
Sorry again
Click to expand...
Click to collapse
No worries.
If anyone is wondering how to change the SailfishOS UI scale (I find the default one to be way too big) here's how I did it via the terminal:
Code:
devel-su
rm /etc/dconf/db/vendor.d/locks/silica-configs.txt
dconf write /desktop/sailfish/silica/theme_pixel_ratio value
I believe the default value should be around 1.1; you can also reset the value to stock with:
Code:
dconf reset /desktop/sailfish/silica/theme_pixel_ratio
or read the value with:
Code:
dconf read /desktop/sailfish/silica/theme_pixel_ratio
Not exactly droid 4 related, but thought I'd share.
Okay, I got the backlight to turn on!
Type the following in the terminal:
Code:
devel-su
echo 255 >/sys/class/leds/keyboard-backlight/brightness
It seems to properly react to some triggers like standby after being turned on but not to others like sliding the keyboard in and out (which means it will always stay on if the screen is on, regardless if it's been slided in or out). My assumption is that the keyboard sliding trigger got broken in some way, as I believe that's the way the backlight is being turned on. The events which trigger the backlight seem to be stored in the file /sys/class/leds/keyboard-backlight/trigger, so I assume that would be a good starting point to attempt fixing this.
The keyboard backlight intensity can also be changed, just change the 255 to a different value (it goes from 0 to 255).
Note: this change is not permanent, it will need to be applied again at reboot. Writing a script which executes the above commands at boot should be trivial though, and I will include instructions when I get it done myself.
EDIT:
Here's how to make the change permanent. Following these instructions you will create a Systemd service which will turn the backlight on when active and off when inactive; it will automatically run at boot and it can also be controlled like any other Systemd service (i.e. using systemctl via the terminal)
Type the following commands through the terminal:
Code:
devel-su
cd /etc/systemd/system
touch keyboard-backlight.service
chmod 744 keyboard-backlight.service
You will now need to edit the keyboard-backlight.service file with a text editor (either vim or nano will do, vim comes preinstalled, nano does not). Depending on your preferred text editor, type the following:
Code:
vim keyboard-backlight.service
or
Code:
nano keyboard-backlight.service
Now write the following to the file and save it:
Code:
[Unit]
Description=XT894 keyboard backlight service
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo 255 >/sys/class/leds/keyboard-backlight/brightness"
ExecStop=/bin/sh -c "echo 0 >/sys/class/leds/keyboard-backlight/brightness"
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Now type the following to enable the service:
Code:
systemctl enable keyboard-backlight.service
That's it. You can now control the service by using the following:
Code:
systemctl start keyboard-backlight //This will turn the backlight on
systemctl stop keyboard-backlight //This will turn the backlight off
systemctl status keyboard-backlight //This will display the service status
Can anyone share the google drive file from the first post? Is there an alternative link available? Or could you PM me a google drive link? Thanks!
Can anyone suggest the best/correct ROM-slot size for TWRP?
Is it still like for CM/LOS:
800MB for system
10MB for cache
and rest for data as one likes?
It has been bugging me for quite some time that the Lenovo Yoga Tab 3 Plus has a portrait (phone) 10" screen mounted in a landscape body, and TWRP didn't have the necessary code to adjust its graphics rendering so as to compensate for this, so I just decided to patch it myself.
With these unofficial recoveries (officials can be found here and here), you get the following improvements:
Graphics are rendered in the landscape orientation
Compiled from LineageOS 15.1 sources plus LineageTWRP => much easier to maintain
(For development) Pstore/ramoops active, can retrieve the Android kernel's log on reboot or panic
Mouse pointer in the middle of the screen is gone
Factory reset commands from Android are no longer broken
Removed their prompt to install the TWRP app in Android when you try to reboot
Also be aware that flashing unofficial cm14 zips is not supported with these TWRP images!
If any of the items above bug you as well, these TWRP builds may be for you. At the moment they are optional (not required - you may use other TWRP recoveries just as well) if you are a user of LineageOS 15.1 for YTX703F/YTX703L. However, in the future we will be making steps to replace the official TWRP recoveries with these ones over here.
Known issues
None so far.
Downloads
TWRP 3.2.3: [YTX703F (Wifi)] | [YTX703L (LTE)]
Installation instructions
If your device is new to the custom ROM flashing process, you need to unlock its bootloader:
Code:
fastboot oem unlock-go
If you are not fully decided and just want to try out these TWRP images, you can just hot-boot them into RAM, without writing them permanently to flash storage:
Code:
fastboot boot twrp-3.2.3-UNOFFICIAL-YTX703L.img
If you don't like it, it's not persistent (rebooting again will get you the old recovery back)
If you're sold on the new recovery image, here's how to permanently flash it:
Code:
adb reboot bootloader # Do this only if you're not in fastboot mode right now (with the orange Lenovo image)
fastboot flash recovery twrp-3.2.3-UNOFFICIAL-YTX703L.img
fastboot continue # Will boot into Android
Build instructions
Add the following to .repo/local_manifests/roomservice.xml in a lineage-15.1 tree:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote fetch="https://github.com/omnirom" name="omnirom" review="gerrit.omnirom.org" revision="android-8.1" />
<project groups="pdk" name="android_bootable_recovery" path="bootable/recovery-twrp" remote="omnirom" />
</manifest>
Run the following:
Code:
$ repo sync bootable/recovery-twrp
$ source build/envsetup.sh
$ repopick -P bootable/recovery-twrp -g https://gerrit.omnirom.org 31454
$ repopick -P bootable/recovery-twrp -g https://gerrit.omnirom.org 31630
$ repopick -P bootable/recovery-twrp -g https://gerrit.omnirom.org 28622
$ lunch lineage_YTX703L-eng
$ WITH_TWRP=true mka recoveryimage
$ adb reboot bootloader
$ fastboot boot out/target/product/YTX703L/recovery.img
vladimiroltean said:
It has been bugging me for quite some time that the Lenovo Yoga Tab 3 Plus has a portrait (phone) 10" screen mounted in a landscape body, and TWRP didn't have the necessary code to adjust its graphics rendering so as to compensate for this, so I just decided to patch it myself.
With these unofficial recoveries (officials can be found here and here), you get the following improvements:
Graphics are rendered in the landscape orientation
Compiled from LineageOS 15.1 sources plus LineageTWRP => much easier to maintain
(For development) Pstore/ramoops active, can retrieve the Android kernel's log on reboot or panic
Mouse pointer in the middle of the screen is gone
Factory reset commands from Android are no longer broken
Removed their prompt to install the TWRP app in Android when you try to reboot
Also be aware that flashing unofficial cm14 zips is not supported with these TWRP images!
If any of the items above bug you as well, these TWRP builds may be for you. At the moment they are optional (not required - you may use other TWRP recoveries just as well) if you are a user of LineageOS 15.1 for YTX703F/YTX703L. However, in the future we will be making steps to replace the official TWRP recoveries with these ones over here.
Known issues
None so far.
Downloads
TWRP 3.2.3: [YTX703F (Wifi)] | [YTX703L (LTE)]
Installation instructions
If your device is new to the custom ROM flashing process, you need to unlock its bootloader:
If you are not fully decided and just want to try out these TWRP images, you can just hot-boot them into RAM, without writing them permanently to flash storage:
If you don't like it, it's not persistent (rebooting again will get you the old recovery back)
If you're sold on the new recovery image, here's how to permanently flash it:
Click to expand...
Click to collapse
Can I also install this new recovery image using the twrp app instead adb?
Or can i try the new Image to execute the Codes directly in the tablet with the terminal emulator App instead connecting to the PC?
tombraga said:
Can I also install this new recovery image using the twrp app instead adb?
Click to expand...
Click to collapse
I've never used that, as I consider it bloatware. If it allows you to flash a local disk image (and not only ones downloaded from twrp.me) into the recovery partition, then I suppose you can. But then again, that'd require giving it root permissions, and I don't think I'd trust it that much just because I'm lazy.
vladimiroltean said:
I've never used that, as I consider it bloatware. If it allows you to flash a local disk image (and not only ones downloaded from twrp.me) into the recovery partition, then I suppose you can. But then again, that'd require giving it root permissions, and I don't think I'd trust it that much just because I'm lazy.
Click to expand...
Click to collapse
Thanks for Information, one more question:
Can i try the new Image to execute the Codes directly in the tablet with the terminal emulator App instead connecting to the PC?
I got some problem right now with my pc and cannot use it with my tablet
tombraga said:
Thanks for Information, one more question:
Can i try the new Image to execute the Codes directly in the tablet with the terminal emulator App instead connecting to the PC?
I got some problem right now with my pc and cannot use it with my tablet
Click to expand...
Click to collapse
You can try to do this:
Code:
su
dd if=/sdcard/Download/twrp-3.2.3-UNOFFICIAL-YTX703L.img of=/dev/block/bootdevice/by-name/recovery
sync
But keep in mind that interactive "su" sessions are kinda broken (tab completion, Ctrl-c and other stuff), this patch fixes that but its's not merged yet. So your mileage might vary. If you just cut and paste the commands (make sure they match your device though!) it should work.
vladimiroltean said:
You can try to do this:
But keep in mind that interactive "su" sessions are kinda broken (tab completion, Ctrl-c and other stuff), this patch fixes that but its's not merged yet. So your mileage might vary. If you just cut and paste the commands (make sure they match your device though!) it should work.
Click to expand...
Click to collapse
Thanks, but this is too hot for, better I wait and fix my pc first, thanks
At least perhaps a stupid question: can i flash your new twrp img directly from my actual official 3.2.0-0 twrp choosing install image and then your img.file?
tombraga said:
Thanks, but this is too hot for, better I wait and fix my pc first, thanks
At least perhaps a stupid question: can i flash your new twrp img directly from my actual official 3.2.0-0 twrp choosing install image and then your img.file?
Click to expand...
Click to collapse
There are countless ways you can do it, but like you said, it's not a good idea to reflash your recovery if you're don't have a plan B if anything goes wrong.
vladimiroltean said:
There are countless ways you can do it, but like you said, it's not a good idea to reflash your recovery if you're don't have a plan B if anything goes wrong.
Click to expand...
Click to collapse
i could fix my laptop now i made it with adb as you teached and explained, worked wityout any problems
I like very much the new TWRP, waiting so long for this landscape mode and without questions to install TWRP app.
Now i uninstall the TWRP app and have a very nice TWRP recovery which is fine for my Lenovo tablet, thank you so much.
Problem: no i cannot uninstall more the TWRP app, even tried with titanium pro, but could not find the system app was the message...
should i freez the twrp app now with titanium pro?
When your twrp will go official???? I hope soon.
---------- Post added at 05:21 PM ---------- Previous post was at 05:06 PM ----------
tombraga said:
i could fix my laptop now i made it with adb as you teached and explained, worked wityout any problems
I like very much the new TWRP, waiting so long for this landscape mode and without questions to install TWRP app.
Now i uninstall the TWRP app and have a very nice TWRP recovery which is fine for my Lenovo tablet, thank you so much.
Problem: no i cannot uninstall more the TWRP app, even tried with titanium pro, but could not find the system app was the message...
should i freez the twrp app now with titanium pro?
When your twrp will go official???? I hope soon.
Click to expand...
Click to collapse
made even a first backup right now with the new TWRP, without any problem and very fast. great!
tombraga said:
Problem: no i cannot uninstall more the TWRP app, even tried with titanium pro, but could not find the system app was the message...
should i freez the twrp app now with titanium pro?
Click to expand...
Click to collapse
If it really bothers you, I would wipe the system partition and install everything else all over again (LineageOS, the exact same Gapps package, etc).
tombraga said:
When your twrp will go official???? I hope soon.
Click to expand...
Click to collapse
Probably not very soon, hence the reason why I decided to release it unofficially for a while. I contacted the TWRP project maintainers and they said they're caught at the moment with other stuff (merging with Android P codebase) and they can't review my display rotation patch until that activity is finished. So we're probably talking about the timeframe when the first official TWRP and LineageOS builds based on Android P are going to get released.
vladimiroltean said:
If it really bothers you, I would wipe the system partition and install everything else all over again (LineageOS, the exact same Gapps package, etc).
Probably not very soon, hence the reason why I decided to release it unofficially for a while. I contacted the TWRP project maintainers and they said they're caught at the moment with other stuff (merging with Android P codebase) and they can't review my display rotation patch until that activity is finished. So we're probably talking about the timeframe when the first official TWRP and LineageOS builds based on Android P are going to get released.
Click to expand...
Click to collapse
It's ok, I can live with it.
I see two things in new version
1) graphical bug inside list of files (overlapping)
2) cannot access NTFS formatted sd-card (while older version working fine)
janforman said:
I see two things in new version
1) graphical bug inside list of files (overlapping)
2) cannot access NTFS formatted sd-card (while older version working fine)
Click to expand...
Click to collapse
1. Screenshot? (I think it's vol-up + power)
2. That might be my oversight on my part. NTFS is indeed not enabled in the kernel because Android uses the ntfs-3g FUSE implementation. I think that's not available in TWRP though.
vladimiroltean said:
1. Screenshot? (I think it's vol-up + power)
2. That might be my oversight on my part. NTFS is indeed not enabled in the kernel because Android uses the ntfs-3g FUSE implementation. I think that's not available in TWRP though.
Click to expand...
Click to collapse
I flashed older TWRP version and NTFS is working well. I'm using it for flashing and backup. In new version sdcard is not mounted and in "mount" option greyed out (i cannot select it).
I had an issue flashing a custom boot animation zip and font zip, they appeared to flash fine in recovery but the boot animation and font was not changed. I flashed the latest official TWRP and these zips flashed and took effect fine. No issues with ROM zip, gapps or magisk though
scoobyjenkins said:
I had an issue flashing a custom boot animation zip and font zip, they appeared to flash fine in recovery but the boot animation and font was not changed. I flashed the latest official TWRP and these zips flashed and took effect fine. No issues with ROM zip, gapps or magisk though
Click to expand...
Click to collapse
Can you give a link to the boot animation and font you flashed.
I know you are the graphics expert around here so will be nice if you can point us to some compatible boot animations for our device.
I really don't want to sound unappreciative but the Lineage 'stock' boot animation seriously needs a facelift
Finefeather said:
Can you give a link to the boot animation and font you flashed.
I know you are the graphics expert around here so will be nice if you can point us to some compatible boot animations for our device.
I really don't want to sound unappreciative but the Lineage 'stock' boot animation seriously needs a facelift
Click to expand...
Click to collapse
The animation is nothing to do with Lineage, but if you like Raphael of TMNT, feel free to try this: https://drive.google.com/open?id=0B260dxr9nvchTG0xR2pYelhuNHc
I have noticed that with an animation that fills more of the screen than the lineage logo, there seems to be a black overlay taking up about a 3rd of the screen at the right, which obscures my animation a little but only for a couple of seconds.
As I say, I can flash this with official TWRP but it doesn't seem to take with this one
This version of TWRP is unfortunately not compatible with GApps+Aroma. (The standard version works fine.)
Rueddi_ger said:
@vladimiroltean
How do I compile this TWRP? I found the twrp.mk in our devicetree/recovery directory. I pasted all flags to the end of BoardConfigCommon and the BoarConfig of the F/L version. It compiles well, but doesn't recognize those flags, I think. When I boot the img The touchscreen is completely inverted and is weird. Apart from that it isn't in landscape mode, but in portrait ( even thought the flags include TW_THEME := landscape_hdpi) Can you give me an idea where the problem is?
You can find my device tree here: Github
Click to expand...
Click to collapse
Added instructions in the top post.
Rueddi_ger said:
Actually I forgot to mention that I do not want to build TWRP exactly, but OrangeFox (which is based on TWRP). The problem is I cannot use the lineageOS tree, I think, because OrangeFox requires to be initialized with the minimal Omni manifest (see here: https://gitlab.com/OrangeFox/Manifest ). Do you have an idea what I can do?
Click to expand...
Click to collapse
What have you tried to do and what were the errors you were faced with?
Rueddi_ger said:
Apart from that it didn't seem to recognize any TWRP flags as the theme is not landscape, although I put those flags like everywhere
Click to expand...
Click to collapse
Hate to break it to you, but rotating the recovery framebuffer is an operation that is quite a bit more involved than setting "TW_THEME := landscape" (assuming that's what you were trying to say).
Did you even bother to look at the patches linked in the top post? What about this one:
Code:
From 2a8821faf98f8c26a88e9bbe8a8a6d31015b938b Mon Sep 17 00:00:00 2001
From: Vladimir Oltean <[email protected]>
Date: Tue, 3 Jul 2018 00:04:03 +0300
Subject: [PATCH] TW_HWROTATION: add flag to handle hardware-rotated display
panels
* The existence of TW_HWROTATION that implements this feature at the
level of calls to libpixelflinger API closely mirrors the existence of
ro.sf.hwrotation for surfaceflinger in LineageOS.
* A brute-force approach was previously attempted via the
BOARD_HAS_FLIPPED_SCREEN makefile flag. That code iterated over the
active display surface in a double-buffered setup, and performed a
"smart" memcpy from the UI drawing surface (gr_draw) onto the display
surface. The problem was that, without heavy loop optimizations, that
code could have never scaled for 90 and 270 degree rotation.
I tried and you could literally see the for loop with the naked eye
while the display surface was updating.
* That code is now gone, but support for BOARD_HAS_FLIPPED_SCREEN := true
is still there (now means TW_HWROTATION := 180).
* This patch relies on the assumption that it is impossibly difficult
and non-portable to rotate whole framebuffer display surfaces, in a
way that is not dependent upon the graphics backend (adf, fbdev, drm,
overlay etc). Therefore, it identifies the rendering primitives that
the TWRP graphics stack exposes to the GUI application above, and
implements hwrotation inside each of those calls instead:
- gr_line(), gr_fill() - 2D geometric shapes (lines, rectangles)
- gr_blit() - graphical image resources
- gr_ttf_textExWH() - font rendering
- gr_fb_width(), gr_fb_height() - framebuffer resolution
* The gist is to keep the backend and framebuffer (dimensions, row size
etc) unchanged (because making changes there is asking for trouble),
but present an altogether different reality to the calling API,
according to the compile-time constant TW_HWROTATION.
* All (x, y) API coordinates and shapes are transformed before being
actually rendered as (x_disp, y_disp) display coordinates.
* With TW_HWROTATION := 90 or 270 you can turn a landscape device into
a portrait one, because the GUI is fooled by the reversed dimensions
reported by gr_fb_width() and gr_fb_height() and renders the UI as
for a different device.
* For blit and text rendering operations, figuring out the transformed
coordinates in display space is not enough, as the surfaces that are
to be rendered have to be rotated themselves. This is handled by
allocating an intermediary rotated surface on each rendering
operation (not ideal), so the code with the intermediary surface
is compiled out for the TW_HWROTATION := 0 case.
* This is still not as bad as rotating the whole framebuffer though, and
on a msm8976 device the performance hit is not even noticeable (for
software rendering).
* Currently there is no attempt to make a connection between the
TW_HWROTATION and the { RECOVERY_TOUCHSCREEN_SWAP_XY,
RECOVERY_TOUCHSCREEN_FLIP_X, RECOVERY_TOUCHSCREEN_FLIP_Y } settings.
Change-Id: Ic8966ad5360c8a499649fdb16e242286640fd992
Signed-off-by: Vladimir Oltean <[email protected]>
Dear R4X users,
I am facing an issue since i bought this phone. I was using stock Global ROM for a while, after that I flashed LOS14 and now I am using Havoc OS. The thing that happens on every ROM is that touching fingerprint sensor wakes phone. I did not set up any fingerprints, I just skipped that configuration step. Is there option to disable that sensor? I cannot find anything in the settings, but I read somewhere that it should be possible to do by disconnecting device from driver via linux commands. Does anyone know how to find driver and device path? There are no matches when I scan all filesystem for "fpc".
Or does anyone know another way to disable that sensor?
Cheers.
follow this:
https://forum.xda-developers.com/xiaomi-redmi-4x/how-to/fixes-redmi-4x-t3858845
foneiamone said:
follow this:
https://forum.xda-developers.com/xiaomi-redmi-4x/how-to/fixes-redmi-4x-t3858845
Click to expand...
Click to collapse
I do not have this file present as I did not add any fingerprints. Altough I skipped fingerprint configuration, that sensor is still active and any touch wakes my phone.
Since no one could help me, I had to work it out myself. If anyone has the same problem, that's the solution:
Run this command:
echo -n "soc:fpc1020" > /sys/bus/platform/drivers/fpc1020/unbind
Fingerprint sensor is now inactive until next reboot.
Also, this thread can be closed now.
First of all, thanks to ilia3367 for his Pure Edition ROM which contains some very useful stuffs for flashing and booting GSI.
Code:
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in the GSI
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*/
What you need
1. Unlocked bootloader
Follow this guide to unlock bootloader. In overall, the unlock process is not as difficult compared to other brands, provided your device is eligible to unlock.
WARNING: The following steps assume you have already unlocked your bootloader. If you haven't unlocked your bootloader yet, or your device isn't eligible, DO NOT PROCEED.
2. fastboot
The process utilizes fastboot exclusively, so make sure you have fastboot installed.
3. A Magisk patched boot.img.
You can either patch it yourself using Magisk Manager, or use boot_magisk.img from Pure Edition ROM.
Although you should be able to use GSI without Magisk, you'll probably need to patch vbmeta (or vbmeta_system) so the stock kernel won't refuse to boot the GSI in this case. This guide does not cover non-Magisk scenario for now, as I'm not entirely sure. With Magisk, patching vbmeta is not needed.
4. A backup of factory images in case something goes wrong.
The factory image (both S and 20 Pro) can be found in the Pure Edition ROM thread as well.
Steps to flash GSI
1. Enter fastboot
Hold down both POWER and VOL- to enter fastboot mode.
Or you can use the following adb command to do so.
Code:
adb reboot bootloader
2. Enter fastbootd
Enter the following command to enter fastbootd, where you can actually access the system partitions, as this phone uses Dynamic Paritions.
Code:
fastboot reboot fastboot
WARNING: The following steps will actually modify your system partitions and may leave your phone unbootable. Make sure you have backed up everything before proceeding.
3. Flash Magisk patched boot.img
Assume you have the Magisk patched boot.img as boot_magisk.img, enter the following command.
Code:
fastboot flash boot boot_magisk.img
Note that you can also flash boot.img directly from fastboot, before entering fastbootd.
4. Remove the product partition
The phone's system partition is very small (about 1GB), but has a very big product partition (about 2.7GB). You'll get an error if you try to flash the GSI right away, as the super partition does not have enough room to resize the system partition to hold the GSI image if it's too large.
As the product partition is not useful for GSIs, it can be safely removed. Enter the following commands.
Code:
fastboot erase product
fastboot resize-logical-partition product_a 0x0
This will erase the stuffs in the product partition and set its size to zero, so the system partition would be able to claim its space when resizing.
You can always use the following command to check bootloader variables.
Code:
fastboot getvar all
In this case, check if the product_a partition has indeed been resized to zero. If yes, you can proceed.
Code:
(bootloader) partition-size:product_a:0x0
5. Flashing the GSI
Enter the following commands.
Code:
fastboot erase system
fastboot flash system gsi.img
Note that the erase command is optional. Replace gsi.img with the actual GSI image file of your choice.
6. Wipe userdata if needed
You don't need to wipe userdata if you are dirty flashing newer build of a same GSI over the existing one.
In case you need to do so (such as flashing a different GSI, or factory reset), enter the following commands.
WARNING: These commands will erase everything in the internal storage, not just app data! Make sure you have everything in the internal storage backed up before doing this. You may try this unofficial TWRP for this device if you want to perform factory reset while keeping your files, as well as creating a nandroid backup.
Code:
fastboot erase userdata
fastboot erase metadata
7. Reboot
Enter the following command to reboot.
Code:
fastboot reboot
If nothing goes wrong and the GSI doesn't have any major issue that might prevent it from successfully booting, you should be able to boot the GSI and further configure it yourself.
I'm still experimenting with GSI so I'm not sure which feature works and which doesn't.
The GSI I'm currently testing is DotOS. Different GSIs may produce different results but should be mostly similar.
For now it seems the following stuffs are working fine:
- Wi-Fi
- Bluetooth (Audio is problematic, other parts appear to work fine)
- 5G (Data)
- NFC
- Camera
- Display color settings (such as Boosted, Saturated)
- Fingerprint Sensor (Turned out it works!)
- Encryption (GSI can work with untouched vendor, which enforces encryption)
- 120/144 fps (On GSI it defaults to 120 fps, which can be changed in Phh-Treble settings)
The following stuffs are problematic:
- MTP (I recommend using ADB as it's a hit-or-miss on Linux. On some environments it works, on other environments it doesn't)
- Bluetooth Audio (Need to enable "alternate audio policy" and also "Force disable A2DP offload" for headsets to work correctly)
The following stuffs are not working:
- VoLTE (While you can enable "Force the password of 4G Calling setting" in Phh Treble Settings -> IMS features" then toggle it off then on upon system startup to make it active, it does not work correctly!)
Here are some functionalities that I won't be able to test as I'm not actually using them.
- SafetyNet related (I use microG now)
- USB Type-C Audio (I mainly use bluetooth headsets if needed for all except gaming)
- SIM2 (I'm confident it'll work as both SIM slot's IMEIs are correctly detected)
- Carrier-specific issues (Need someone using Verizon or other GSI-problematic carriers to test this)
Currently I've tested that the most recent DotOS, OctaviOS GSIs are working.
Keep in mind that not all GSIs can boot. You'll need to look for another build if the one you flashed doesn't boot correctly (which seems to be SELinux related).
For now, most of the functionalities work on GSI using a Magisk patched stock kernel and untouched vendor. The kernel source for RRA31 build (Global) is currently in the process of being released.
UPDATE (11/3/2021): The source code is now available.
but i've still have a question for the step 5
this mobile is a/b slot but you didn't use fastbootd mode is that work?
ZhenYuSAMA said:
but i've still have a question for the step 5
this mobile is a/b slot but you didn't use fastbootd mode is that work?
Click to expand...
Click to collapse
Step 2 is switching to fastbootd. The rest of the commands are done in fastbootd mode.
fastbootd uses the same syntax as fastboot.
This phone uses dynamic partitions, but is also A/B. Usually you would be on slot A if it's a new phone, but be sure to pay attention to active slot if the phone has taken OTA updates before.
I don't know if there are already OTA updates out, though this phone is still relatively new.
LSS4181 said:
Step 2 is switching to fastbootd. The rest of the commands are done in fastbootd mode.
fastbootd uses the same syntax as fastboot.
This phone uses dynamic partitions, but is also A/B. Usually you would be on slot A if it's a new phone, but be sure to pay attention to active slot if the phone has taken OTA updates before.
I don't know if there are already OTA updates out, though this phone is still relatively new.
Click to expand...
Click to collapse
whoa, now i see much thx
I tried DotOS 5.2 since i don't have volte on my area, and it was usable, only thing that annoyed me a little is CPU being capped at 2500MHz. Do you know how to have the same frecuency config as with the stock ROM?. With stock i noticed everytime i open a benchmark app the CPU stays at max frecuency on all cores even if it's not running the actual benchmark.
I don't have much knowledge with tweaking system code since the phone i had before had every ROM in every flavor already optimized (k20 pro) and with this one i'm getting a little bit bored to be honest so i wanted to do something myself but i couldn't get around those frecuency issues. Tried with Franco Kernel Manager and EX, the frecuecies applied but after around 1 minute everything went back to default.
Also, did you try the stock camera app?
Thanks.
rodrimax10 said:
I tried DotOS 5.2 since i don't have volte on my area, and it was usable, only thing that annoyed me a little is CPU being capped at 2500MHz. Do you know how to have the same frecuency config as with the stock ROM?. With stock i noticed everytime i open a benchmark app the CPU stays at max frecuency on all cores even if it's not running the actual benchmark.
I don't have much knowledge with tweaking system code since the phone i had before had every ROM in every flavor already optimized (k20 pro) and with this one i'm getting a little bit bored to be honest so i wanted to do something myself but i couldn't get around those frecuency issues. Tried with Franco Kernel Manager and EX, the frecuecies applied but after around 1 minute everything went back to default.
Also, did you try the stock camera app?
Thanks.
Click to expand...
Click to collapse
VoLTE doesn't work with GSIs yet. I tried forcing the toggle out. It does register, but calls do not function at all (hangs). I've reported the issue to phh, but I'm yet to make any progress. One thing I know is that IMS is in `/system_ext`, and that is not used by GSI.
As for CPU cap, I haven't really tried using kernel managers on the device yet (I prefer using SmartPack). My experience with SmartPack on other devices is similar, that any changes to frequencies would be reverted to default after a while.
It seems the system (or maybe just stock kernel) nowadays don't allow you to freely change CPU/GPU frequencies anymore, and your experience with Franco and EX further proved it. As for benchmark apps capping CPU frequency... I suspect the phone has some cheating mechanisms similar to some other ones in the past.
Don't know about stock camera app. For custom ROMs/GSIs my favorite is Open Camera, which is installed via NanoDroid to replace the stock ones.
Plus, with stock ROM, the system partition doesn't really have many stuffs. Other stuffs were placed in `/system_ext` and `/product`, and it appears that GSIs use neither of those. It's possible that the libraries of some essential features reside in `/system_ext` and therefore would not be available for GSIs (like IMS).
This procedure could be used to A12?
vinaaa said:
This procedure could be used to A12?
Click to expand...
Click to collapse
Yes but from my experience apart from the bugs mencioned above, in A12 fingerprint and magisk don't work and bluetooth doesn't either even with the workaround. Once i found these bugs i went back to stock so i didn't test it more than 15 minutes, it probably has a lot more to be found
LSS4181 said:
VoLTE doesn't work with GSIs yet. I tried forcing the toggle out. It does register, but calls do not function at all (hangs). I've reported the issue to phh, but I'm yet to make any progress. One thing I know is that IMS is in `/system_ext`, and that is not used by GSI.
As for CPU cap, I haven't really tried using kernel managers on the device yet (I prefer using SmartPack). My experience with SmartPack on other devices is similar, that any changes to frequencies would be reverted to default after a while.
It seems the system (or maybe just stock kernel) nowadays don't allow you to freely change CPU/GPU frequencies anymore, and your experience with Franco and EX further proved it. As for benchmark apps capping CPU frequency... I suspect the phone has some cheating mechanisms similar to some other ones in the past.
Don't know about stock camera app. For custom ROMs/GSIs my favorite is Open Camera, which is installed via NanoDroid to replace the stock ones.
Plus, with stock ROM, the system partition doesn't really have many stuffs. Other stuffs were placed in `/system_ext` and `/product`, and it appears that GSIs use neither of those. It's possible that the libraries of some essential features reside in `/system_ext` and therefore would not be available for GSIs (like IMS).
Click to expand...
Click to collapse
Thank you for the reply
I don't know if this is of any relevance but after disabling system tracing on developer options on stock A11, the CPU is not capped when opening benchmark apps anymore
I didn't like the DotOS. Yes, it has an interesting interface, interesting graphical solutions. But many additional settings and functions don't work.
ilia3367 said:
I didn't like the DotOS. Yes, it has an interesting interface, interesting graphical solutions. But many additional settings and functions don't work.
Click to expand...
Click to collapse
GSIs aren't 100% bug-free from my own experiences. Sometimes regressions or plain oversights can happen with certain versions. A long time ago with older devices I even had times when Bluetooth didn't work on a certain GSI because the maintainer forgot to include Bluetooth related libraries (as the logcat errors implied the files were absent).
A recent example would be that custom fonts used to work with an earlier build of OctaviOS (July) but broken with the latest (September). Either the maintainer somehow forgot to actually include the fonts this time, or there were regressions/bugs in the OS itself causing the feature to break.
Plus, it seems substratum is still alive and active, yet I'm quite a n00b when it comes to adding additional features to system with it (preferrably on top of plain AOSP). Back then I mainly used it for custom themes I bought, and when custom ROMs started including built-in theming and the features I need, substratum is pretty much dead to me and I haven't touched it for years since then.
PS: There is an ongoing bug with DotOS for this device, since 5.1, that keyboard layout button would not show up when using 3-button navbar (which is my favorite). The button correctly shows when using gestures or 2-button navbar. I reported the issues several times in the group but I got very limited response (probably because few users are using it thus affected)... so the issue persists with the recently released DotOS 5.2 GSI.
This is an update to the Ubuntu Touch build that I shared a while back.which was based on halium 7. Now we are moving to halium 9. Even with quite a few unsolved issues ,these builds are marginal improvement over the previous ones.
This port had been no means easy, in reality, the initial builds was even more buggy compared to previous gen ,but most of them were much easier to fix, as I got lots of help from the porting community.I was able to get it to a booting state in about 3 months time as compared to more than a year with halium 7 , to be fair the delay was also due to the fact that I was not exactly an android developer or a developer for that matter, and had to read a lot at first .
anyways I share it here as I have reached a point where further bug fixing is beyond my capability . or in other words, Googling error codes and testing all possible methods /solutions don't seem to yield any meaningful full result, I do really wish someone better than me would look into it and make it even better ;- )
In the meantime let me add more Verbose ;-P
What is ubuntu touch
ubuntu touch is different from other oses as it is fork of Linux as compared to all our favorite mobile oses being forks of android. in other words, it is a fully functional Linux os optimized to run on arm64 device in a touch environment.The original idea was conceived by canonical and later they stoped their work and open-sourced the project and transferred the assets to the ubports community, the community is actively improving it, and trying to bring it to feature parity with Android .
whats working on this port
calls,data ,wifi
sound, vibration
auto rotation
auto, manual brightness
Offline charging
GPS
and other misc things
whats partially working
camera (preview and take video works clicking picture not working)
fingerprint (fingerprint wakes the device but cant enroll fingerprints)
Bluetooth (everything works except file transfer)
what does not work
adb,mtp
one of the feature improvements amongst other things is the support for waydroid
Waydroid
waydroid is a containerised approach to get an android environment running in a Linux system with the added advantage of full hardware access.so we can android apps and games natively. more details can be found here. to install way droid open terminal and paste the following
sudo -s
mount -o rw,remount / && apt update && apt install waydroid && waydroid init
It also need a fix as waydroid is intended for treble devices which can be found in this post. Thank you @erfanoabdi for enabling support for non treble devices.
Installation
- flash the halium-boot and the following zip file
- clean flash recommended
- reboot after the initial setup is done
Halium-boot .img
ubuntu_touch_installer_Kenzo_halium9_v7.zip
Please Donate
Every rupee ,euro ,doller counts. It would feel wounderful to be gifted something no matter how small.
If you like to do more, please consider buying me a coffee or may be even another Kenzo.
if you are in India please use this upi id -- > [email protected]
else do pm me.
default user password is " a "
For the History book
ubuntu_touch_installer_Kenzo_halium9_v6.zip
ubuntu_touch_installer_Kenzo_halium9_v5.zip
ubuntu_touch_installer_Kenzo_halium9_v4.zip
ubuntu_touch_installer_Kenzo_halium9_v2.zip
The sources
[https://github.com/mathew-dennis
[https://github.com/LineageOS
[https://github.com/Halium
[https://github.com/ubports
Thankyou
ubports community --> TheKit ,FlowHack, kn8rider divin, ari and everyone else
Redmi note 3 community --> thanks to all Dev's for keeping the device alive for the community .
This port would have never reached anywhere without their efforts..
And the truth is my efforts are very little as compared theirs...thank you ...
changelog
"Why not make something new from old code!" (Also because my pc can't handle A10+ builds)
v7
- updated to latest rootfs (ota-24)
V6
- updated to latest rootfs (ota-22)
- rebuild android image
- auto-brightness
V5. 1 (this is a patch for v5)
- bluetooth (everything else except file transfer )
- offline charging
- gps ( for real this time ) ( as ut dont have A-GPS support 1st fix might take 5+ min ,then it should work as normal)
v5
- gps is working now ( it's broken again)
-changed audio hal to a late start service
-enabled wireless display option (should work on miracast devices ) (not tested )
-fixes from ubports --> magnetometer and notification led is working and other fixes from ota 18 to ota 20
v4
- fixed issue with initial setup --thankyou Kn8Ryder
-audio should come up more often during boot than before
Telegram
If you are interested in bug fixing and contributing to this project , report a bug , click here to reach Telegram group
#Screenshots
what is default user password...
KrutosVIP said:
what is default user password...
Click to expand...
Click to collapse
"123" if u flashed old rom first, else "a"
mathew..denniss said:
"123" if u flashed old rom first, else "a"
Click to expand...
Click to collapse
ok, will try
Touch not working! after initial setup
mathew..denniss said:
"123" if u flashed old rom first, else "a"
Click to expand...
Click to collapse
Working for me, thanks for porting this amazing system.
BraveAmbush said:
Touch not working! after initial setup
Click to expand...
Click to collapse
For me the fix was to firstly install old ubuntu touch, load it and configure. After that,flash bootimage of new Ubuntu Touch with Halium9, then flash .zip with new Ubuntu Touch. It will give error, it is normal - go to /data/ and delete dir "ubports", then try again.
After that - just reboot, system will start with configured profile "Ubuntu"
The password is just "a"
Also, for me sound not working.
KrutosVIP said:
For me the fix was to firstly install old ubuntu touch, load it and configure. After that,flash bootimage of new Ubuntu Touch with Halium9, then flash .zip with new Ubuntu Touch. It will give error, it is normal - go to /data/ and delete dir "ubports", then try again.
After that - just reboot, system will start with configured profile "Ubuntu"
The password is just "a"
Click to expand...
Click to collapse
both flash may end with flash error that not a problem its a busybox compatibility thing.(not relevant )
KrutosVIP said:
Also, for me sound not working.
Click to expand...
Click to collapse
try a hard reboot(long press power button) .it should work afterwards
BraveAmbush said:
Touch not working! after initial setup
Click to expand...
Click to collapse
mathew..denniss said:
both flash may end with flash error that not a problem its a busybox compatibility thing.(not relevant )
Click to expand...
Click to collapse
For me deleting ubports helps to end without error-
When i don`t delete and get error, the system just don`t want to boot.
No animation, just black screen and when reboot
um that for me sound dont work too..
if not delete ubports in recovery and install, it 'll show a short black screen with a small mouse and reboot.
Also there are strange permission issues in the system dirty flashed from halium 7
Can I ask for some clarification? I managed to install the alpha version from your previous post, but how do you flash these update zips? I tried flashing them via TWRP on the device but I keep getting "recovery busybox setup failed" error.
jeangjenq said:
Can I ask for some clarification? I managed to install the alpha version from your previous post, but how do you flash these update zips? I tried flashing them via TWRP on the device but I keep getting "recovery busybox setup failed" error.
Click to expand...
Click to collapse
An update on this, after two more tries of reinstalling old ubuntu touch > flashing halium-boot through fastboot > Flashing zip through TWRP. It flash without issue and booted. Initially the sound isn't working, but after several weird restarts (select poweroff but it restarted, select poweroff but it froze on boot logo, etc etc), sound is working. This is a fun project
updated the flashable zip .. thankyou for the fix @Kn8Ryder
t
jeangjenq said:
Can I ask for some clarification? I managed to install the alpha version from your previous post, but how do you flash these update zips? I tried flashing them via TWRP on the device but I keep getting "recovery busybox setup failed" errotry v4
Click to expand...
Click to collapse
jeangjenq said:
Can I ask for some clarification? I managed to install the alpha version from your previous post, but how do you flash these update zips? I tried flashing them via TWRP on the device but I keep getting "recovery busybox setup failed" error.
Click to expand...
Click to collapse
try v4 ,it has some more fixess.busybox things are gone now
how many minutes does waydroid open to you ?
I did clean install
boot halium + v4 update
then install waydroid thru terminal
loading screen boot logo waydroid? is this alright?
im waiting to it