Related
Hi,
I did some experimenting with getting kernel serial console output on SGSII I9100 without soldering, or even disasembling the device. And seems I succeeded .
So, for anyone interested, here are the details.
First, two warnings:
- you will loose access to CWM recovery! ODIN still usable though.
- no access to bootloader output, only kernel logging available
Now the steps:
enable UART PDA
Flash original samsung ROM (changes in service mode settings in cyanogenmod are not permanent for some reason, I haven't tried other ROMs)
Enter service mode by dialing *#7284#, select UART mode PDA (default is modem. No need to change USB mode to PDA, leave it as is).
Configure, build and flash the kernel
get your kernel command line using dmesg right after boot
modify the console parameter to console=ttySAC2,115200
configure your kernel with this command line (CONFIG_CMDLINE). In my case, the commandline used was:
Code:
loglevel=4 console=ttySAC2,115200 sec_debug.enable=0 sec_debug.enable_user=0 c1_watchdog.sec_pet=5 [email protected] s3cfb.bootloaderfb=0x5ec00000 ld9040.get_lcdtype=0x2 consoleblank=0 lpj=3981312 vmalloc=144m
set force override parameters passed by the bootloader (CONFIG_CMDLINE_FORCE=y)
build the kernel
build your ROM of choice (I have used cyanogenmod) with this new kernel
flash
power off the device, connect "standard" Samsung UART cable - microUSB with 523K resistor to ID pin, 3.3V to RS232 level converter
Now the phone should start and you should see kernel boot messages on connected terminal emulator.
Open questions:
Why UART switch changes are not permanent from cyanogenmod? Is this i known bug?
How to change bootloader parameters from within linux? E.g. kernel command line options... Does anyone know where are the persistent settings of the bootloader stored?
This information is mainly collected from many sources here on this forum, thanks to all of you for publishing your findings. I take credit only for putting all this information together and spending a lot of time trying it out . Also, I take no responsibility for any bricked devices, make sure you know what you are doing, before you start following my steps.
Hope this helps anyone .
--DELETED--
KickerTom said:
[*]Why UART switch changes are not permanent from cyanogenmod? Is this i known bug?
Click to expand...
Click to collapse
The only reason I see for this is kernel. Are you using CM7 or CM9 ?
What did you use as UART cable? Do you have a microUSB to RJ45 + Z3X, or some homemade all-in-one ?
I am using CM7.2RC0 KANG, updated yesterday. Kernel also latest git, home built. But I remember having this problem with "official" nightly builds as well.
For cable, I have my own micro USB with id pin on break out cable, so I can switch resistors, and home made level shifter made from a MAX chip, that connected via stock USB to serial to the PC.
Why not just change index 0x10 in /mnt/.lfs/param.blk?
Odia said:
Why not just change index 0x10 in /mnt/.lfs/param.blk?
Click to expand...
Click to collapse
More details on this? - is that what changes UART PDA?
For the kernel cmdline side of things - I have never found any way to override the kernel cmdline in a controllable manner. The bootloader has a fixed commandline, and it makes changes to it depending on what buttons are pressed (which is why you can't enter CWM via the button combos if you force the cmdline) However, if you're working with a custom kernel, you can just go find the handler for the console= option and force it to always be ttySAC2 regardless of what is passed in the source. This won't work for custom kernels. (Wait... neither will the OP's approach either, sorry - not enough caffeine yet.)
If there's another cmdline option you want enabled, you can overload one of the ones that is in use, and have it trigger other handlers (but those have to have their parameters hardcoded) - such as how garyd9 caused ramconsole setup to be triggered by the loglevel cmdline parameter at https://github.com/garyd9/linux_kernel_GT-P6210/commit/d796ac86dcff1eeda19d7638315dcf6fe3978318. If you're wondering why he did this to enable ramconsole - in the I777 and GT-P6210 source drops, ramconsole support seems to be improved compared to the I9100 source drops - it requires little to no extra patching AND it's controllable by the kernel cmdline - while that's normally an improvement, it's a pain in the ass if you can't change the bootloader to add the ramconsole cmdline parameters.
Odia said:
Why not just change index 0x10 in /mnt/.lfs/param.blk?
Click to expand...
Click to collapse
Never heard of this file before, now took a look and it looks very interesting. I will investigate this option further, thanks for the hint.
Entropy512 said:
For the kernel cmdline side of things - I have never found any way to override the kernel cmdline in a controllable manner. The bootloader has a fixed commandline, and it makes changes to it depending on what buttons are pressed (which is why you can't enter CWM via the button combos if you force the cmdline) However, if you're working with a custom kernel, you can just go find the handler for the console= option and force it to always be ttySAC2 regardless of what is passed in the source.
Click to expand...
Click to collapse
Yes, I agree that your approach is also usable. Advantage of your way is that you are not loosing CWM and such. Mine is that it's without ugly hacks in the kernel ;-).
Ultimate goal would be to modify the bootloader parameters, so kernel recompilation is not needed at all, but not sure it is possible - thats my next direction of research .
Entropy512 said:
This won't work for custom kernels. (Wait... neither will the OP's approach either, sorry - not enough caffeine yet.)
Click to expand...
Click to collapse
Sorry, not following you here. Custom kernel - you mean kernels compiled by third party, which we can't modify? Well, not sure you need a log for kernel you can't modify, maybe for bug reporting to original author? If the kernel works, you can get most of the log using dmesg... And I am not interested in binary-only kernels...
Entropy512 said:
If there's another cmdline option you want enabled, you can overload one of the ones that is in use, and have it trigger other handlers (but those have to have their parameters hardcoded) - such as how garyd9 caused ramconsole setup to be triggered by the loglevel cmdline parameter at github.com commit d796ac86dcff1eeda19d7638315dcf6fe3978318. If you're wondering why he did this to enable ramconsole - in the I777 and GT-P6210 source drops, ramconsole support seems to be improved compared to the I9100 source drops - it requires little to no extra patching AND it's controllable by the kernel cmdline - while that's normally an improvement, it's a pain in the ass if you can't change the bootloader to add the ramconsole cmdline parameters.
Click to expand...
Click to collapse
Maybe that's a better solution for a kernel distributed to users and such. What I was trying to achieve is to have serial log of a booting kernel so you can troubleshoot kernel which does not boot, or which hard-locks or oops. AFAIK, ram console is useless in such cases (correct me if I am wrong, I have very little experience with ram console).
As far as I am interested, the description above does exactly what I need .
KickerTom said:
Sorry, not following you here. Custom kernel - you mean kernels compiled by third party, which we can't modify? Well, not sure you need a log for kernel you can't modify, maybe for bug reporting to original author? If the kernel works, you can get most of the log using dmesg... And I am not interested in binary-only kernels...
Click to expand...
Click to collapse
That was a brainfart - meant it won't work with stock kernels!
The ramconsole approach was just meant as an example - but instead of hooking loglevel to do ramconsole stuff, you could hook it to do other stuff. Of course here, since there's already a serial cmdline entry but it's just wrong, it's easy to just override.
As an example, I abused the "overload the loglevel handler" trick to try and enable profiling. (However, profiling didn't let me get any info on which interrupt handler is eating our IRQ time on suspend/resume.)
Just for reference, here is the cable I am using. There is a stock prolific PL-2303 based USB to serial converter (the grey cable), then a RS232 to 3.3V TTL level shifter (home made, built into the DB9 conector), and then there is a stock micro USB cable. The connection between these two is on this connector for easy re-configuration, as I am using the level shifter for other purposes as well.
The micro USB cable is stock microUSB to USB-A, but I cut off one end to connect it to the level shifter, and I have also cut the micro USB conector to connect a cable to the ID pin. That one and ground are on the blue/white cable, for easy resistor switching.
Except for the ID resistor (523K according to the table, some 507K in my case), all electronic parts are SMD .
A good source for USB-to-TTL/LVTTL cables is FTDI - they sell FT232-based cables. Adafruit is a good vendor for these in the USA.
Just noticed you can get bootloader output by booting the phone and shortly pressing Volume Down (shortly so that it doesn't boot into Download mode). I did it by accident and saw some Samsung PBL logging on my screen.
XpLoDWilD said:
Just noticed you can get bootloader output by booting the phone and shortly pressing Volume Down (shortly so that it doesn't boot into Download mode). I did it by accident and saw some Samsung PBL logging on my screen.
Click to expand...
Click to collapse
Cool. If you can get the bootloader prompt, we are maybe a step closer to being able to even unbrick phones .
So far, I was not able to reproduce this, can you, please, describe better the steps? Also, what version of bootloader do you use?
I did it once by accident, I haven't retried. Basically when I booted phone I mistakenly pressed the Volume Down button with the Power button, but not long enough to make it boot in download mode.
I'm not sure which bootloader I'm running, I think it is some LPx one (if flashing KI4 PDA doesn't overwrite it).
Here's the log of it:
http://pastie.org/3544766
Following up on Odia's hint (thanks ), I decoded the structure of the params.blk file and wrote an utility to deal with it. The file contains parameters normally visible in SBL. With this utility, you can manipulate then from within normally booted phone.
Run it without parameters, it will display current values for all parameters. With parameter name (case insensitive), it will display just that one parameter, run it with param name and value, it will set the new value.
WARNING: no checking on validity of the values is done. If you brick or fry your phone, I take no responsibility and it is your brick!
Put the utility somewhere where you can execute it, e.g. /data. Then to set e.g. a kernel command line to start logging on console, issue:
sblparam command_line "loglevel=4 console=ttySAC2,115200"
From my experiments it looks like the SWITCH_SEL parameter is ignored by the HW, at least I haven't observed any real effect. But you can change the UART switch by modifying a file next to the param.blk, /mnt/.lfs/sw_sel. It contains an ASCII number, by default 1. That is modem uart. Change it to 3 to get PDA uart connected, by e.g. "echo -n 3 > /mnt/.lfs/sw_sel".
Please, be careful about files in /mnt/.lfs, the j4fs is a strange filesystem. You can create files there, but you can't delete them. If you grow a file, you can't trim it back down. I tried longer numbers in sw_sel, and I broke the output completely, and I had to restore the whole .lfs partititon from backup (which reminds me - do a backup first , e.g. with dd).
Now there is no need to flash samsung firmware or compile custom kernel to get kernel console anymore! .
EPIC WIN!!!
This is going to be very nice.
This is amazingly cool!!! Maybe we can get even more...
Inviato dal mio GT-I9100 usando Tapatalk
My kernel finally boots
Seems like I get everytime the bootloader output by booting the phone with Power + Vol Down while having UART cable plugged in, then releasing the buttons when log starts to appear to make it not go into Download mode.
XpLoDWilD said:
My kernel finally boots
Click to expand...
Click to collapse
Wow, congratulations! Looking forward to try out your kernel with CM9 .
XpLoDWilD said:
Seems like I get everytime the bootloader output by booting the phone with Power + Vol Down while having UART cable plugged in, then releasing the buttons when log starts to appear to make it not go into Download mode.
Click to expand...
Click to collapse
Hmmm, must be really something with your kernel. I was not able to get any bootloader messages, and my unit always turn on as soon as I insert the cable.
AFAIK, the resistor is "read" and attach interrupt asserted by the FSA9280 switch. So it looks like your kernel "programs" the switch not to wake up the CPU? Maybe the switch has interrupt assert masked out? I will check the switch sources, when I get some time, maybe I find something interesting...
KickerTom said:
Wow, congratulations! Looking forward to try out your kernel with CM9 .
Hmmm, must be really something with your kernel. I was not able to get any bootloader messages, and my unit always turn on as soon as I insert the cable.
AFAIK, the resistor is "read" and attach interrupt asserted by the FSA9280 switch. So it looks like your kernel "programs" the switch not to wake up the CPU? Maybe the switch has interrupt assert masked out? I will check the switch sources, when I get some time, maybe I find something interesting...
Click to expand...
Click to collapse
I'm wondering if maybe he uses a different resistor value than you do. If I recall, there were multiple values that could trigger UART mode.
The difference in behavior being seen goes earlier in the boot process than kernel boot.
Entropy512 said:
I'm wondering if maybe he uses a different resistor value than you do. If I recall, there were multiple values that could trigger UART mode.
Click to expand...
Click to collapse
No, he does not (apart from the fact that no two resistors are exactly the same ;-) ). I know, because I made both cables ;-).
Moreover, I tried couple of different resistor values, and found none which would not trigger the boot on my unit. You can get e.g. car mode active together with UART with slightly different resistor, but AFAIK, you can not prevent the boot trigger.
Entropy512 said:
The difference in behavior being seen goes earlier in the boot process than kernel boot.
Click to expand...
Click to collapse
Yes, for sure. But don't forget that "turning off" the phone does not mean all ICs in the phone are really powered off. E.g. the switch IC is, AFAIK, always on (unless you pull the battery). So you can set the interrupt mask in the switch and then turn off the main CPU. When UART cable is detected by the switch, it uses the mask to trigger or not trigger interrupt to the CPU.
Which brings another idea - XpLoDWilD, can you, please, try pulling out the battery, put it back and then connect the cable? The switch does not have any means of persistent storage, according to the spec sheet, so if there is no hidden easter egg, then the cable should trigger boot in this case, I believe.
Hi Guys,
Has anyone tried the encryption feature found in Security settings? I'm using a recent nightly CM11 from Quarx/Blechd0se (Thanks, brilliant work!) quite stably for days now, but fail to make the encrypt phone function work...
When fully charged and USB powered, which are requirements, the successive encrypt phone buttons end up on a green android picture. This screen misses text and a progress bar which should normally appear on top of the screen, as seen on some screenshots. Even left for several hours, nothing progresses and a simple press on back button cancels action immediately which proves nothing has been encrypted in the meanwhile.
Took a Catlog and the only interesting message is the following:
Code:
01-02 01:34:23.732 E/Cryptfs ( 1197): Cannot get size of block device
In case it helps, find attached the output of mount command : View attachment mnt.txt
Could you have a look / help me out? (add to bug list if it applies)
In fact, for me, this function needs to be activated for connecting to my professional mails ...
Thanks in advance! :good:
Cheers
Further tested...
Hello all,
Just some more info... I flashed back to Quarx' CM9 and quickly tested once more the encryption and face the same problem but I didn't catlog, neither checked the mounts... Then I flashed Epsylon3's CM9 and quickly checked with the same result too...
But then I checked at catlog and now I get another type of error... Which is interesting and maybe promising as I already read some posts about this message...
Code:
04-14 21:11:13.101 E/Cryptfs ( 2219): Orig filesystem overlaps crypto footer region. Cannot encrypt in place.
Problem seems to be more general than only Quarx/Blechd0se's CM11 but a friend uses a CM9 flavor on a Samsung Galaxy S and has encrypted the phone successfully...
All in all it's linked with the filesystem (block device or not), how it is formated (yaffs/ext3/ext4) and mounted (mount/mount_all)...
Some interesting reading on jira.cyanogenmod.org/browse/CYAN-87 (not linked, I don't have 10 posts yet)...
Hope to find, test and come back with some more info soon...:fingers-crossed:
Cheers!
The purpose of this thread is to have all information regarding the Weloop Tommy, gathered, fresh and to the point.
(i am not affiliated with Weloop)
Please read both post number 1, 2 and search thread before asking questions thank you.
FAQ
Q:What is the latest firmware?
[Release] black watch v3.19 firmware update notifications [Copy link]
This update to the firmware update, the client does not update the current firmware version v3.18 firmware watches friends can try to use the old client detects the firmware update.
Update:
Solve watches restart, restore factory settings watches language will change.
Download Link:
iOS client 2.079: http://fir.im/iosobt
Android client 1.29.3702b: http://fir.im/andobt
Unofficial file archive of WeLoop Tommy. APK-Files with ending "b" are BETA http://www.wtf.li/
Q: When is the next app update
A: Weloop v. 3.0 will be released as closed beta 7the of March 2015 we don't know when there will be an open english release....
the extensive update 3.0 have,
better health monitoring
profiles
sleep monitoring
more alarms weekdays/weekend
and more.
(see attached pictures for app version 3.0 UI improvements
Q: What does the settings do?
- Backlight
24H: Backligth always turns on when button is pressed
Nite: Backligth turns on when button is pressed at night time (from 17–8)
Off: Backligth Always Off
- Motion
24H: Motion detection always on (backlight turns on when motion is detected)
Nite: Motion detection on at night time (from 17-8)
Off: Motion detection Off
- Night
On: Notification vibration disabled at night (from 23–8)
Off: Notification enabled at night
- O Clock
On: every whole hour the watch will vibrate. 12'O'clock etc.
Off: Off
- Fitness
On: Fitness functionality on
Off: Off
- Language
Chinese
English
- Anti Loss
On: Alarm when Phone is out of BT range
Off: Off
Q: Is there Cyrillic support
A: Yes
Q: The GoClever Ecos Chronos is the same watch right?
A: Yes it is on the hardware side, and you can with a "hack" install the firmware from the ECOS on the Tommy. (see next post for How to.!)
Awesome Weloop Review by VECTRON
http://forum.xda-developers.com/smartwatch/other-smartwatches/weloop-tommy-smartwatch-looks-best-t2864444
Troubleshooting
Q: i can not update my watch/its stuck/acting weird
Have you tried to reset the watch? there are 3 ways to do it
Restart watch from app. under update there is a restart button (it says reset but it restarts and keeps all your settings)
Reset from watch (Last menu point, this resets everything)
Hard reset (connect charge cable and press up and down button to reset)
Force OTA update:
Connect your watch to the charger. (watch must be charging)
Press all 3 buttons on the side simultaneously
Release the 2 side buttons, and keep the middle button pressed until you get the upgrade connecting display. (this might take some seconds)
Delete connection from phone
Connect and pair from app and upgrade
If you are on an Android device and it cannot connect, try an ios device, and vice versa
Q: The watch keeps switching back to chinese
More people have experienced that if the language is non english the watch will reset to chinese. Changing the phone OS to english stops the watch from switching to Chinese.
"Hacks"
How to make your own watchfaces:
user fcsabika has created a cool tool to create your own watchfaces
WeLoop Tommy Watchface Creator
attached are also some watchfaces made by user ruicoel filename "project rui.zip"
How To install GoClever Chronos ECO firmware on Weloop tommy (android only)
Download latest ECO firmware to phone
Disconnect Watch from phone, install ECO app
Go to “Check For Upgrade”
Tap on the middle circle six times
“Select a firmware file___ [Browse]”
Watch must be in forced OTA
Update watch.
You can flash between weloop and Goclever firmware (always be careful and follow instructions when flashing, i take no responsibility for bricked or exploding watches...)
To install weloop firnware, follow same instructions but use weloop app instead.
PROJECT OPEN FIRMWARE (please make sure you understand what this is and what it does before you attemtp to flash your watch)
Make a Weloop Tommy an open source sport watch that can be used without a mobile phone. Want to see a heart rate when running, cycling speed and cadence when cycling or number of laps while swimming? Help to make it possible! LINK
This project is divided into six phases:
Phase 1: find out and document watch pinout so it will be possible to communicate with screen, accelerometer and a flash memory from a custom firmware. DONE
Phase 2: write a custom firmware that will print sample text on a screen and expose a BLE service. Firmware will be flashed using SWD connector. DONE
Phase 3: make it possible to upload a custom firmware using OTA. This will save the waterproof case from destruction. DONE
Phase 4: update softdevice to the newest version (S110 8.0.0). Add possibility to switch to other softdevice (S120/S130) DONE
Phase 5: create a "terminal" firmware that allows to control what is displayed on a watch from an android/iOS app. IN PROGRESS
Phase 6: create a "standalone" firmware using S130 softdevice that can connect to external sensors (HRS, CSCS etc) without a phone. TODO
Go support developer Krzysiek
Goclever APK & FW file is attached to this post.
Latest Chronos ECO firmware 3.18
http://www.chronos.goclever.com:8080/fileServer/firmware/CHRONOSECO_V3.18_1.bin
Chronos ECO app (android)
https://play.google.com/store/apps/details?id=com.yf.foreign.goclever
Chronos ECO IOS app
https://itunes.apple.com/th/app/goclever-chronos-eco/id955306578?mt=8
BUGS & Annoyances
Notification not always deleted from phone when deleted on watch
Watch freezes sometimes
Being able to set the night time manually would be great (This can be done with the Goclever fw)
I'm no Dev so I'm not sure if this is of any help. While updating the watch I wanted to ensure my screen stayed on so I was tapping the screen.
If you tap the center of the percentage 6 times a pop up appears for you to select your update file. If you select browse it gives you access to a bunch of folders that appear to be inside the app or maybe the watch itself. I tried it several times and 6 is the magic number to make the option appear or disappear. It doesn't work if the watch isn't upgrading it's firmware.
Hope it can be of some use
skiiermike said:
I'm no Dev so I'm not sure if this is of any help. While updating the watch I wanted to ensure my screen stayed on so I was tapping the screen.
If you tap the center of the percentage 6 times a pop up appears for you to select your update file. If you select browse it gives you access to a bunch of folders that appear to be inside the app or maybe the watch itself. I tried it several times and 6 is the magic number to make the option appear or disappear. It doesn't work if the watch isn't upgrading it's firmware.
Hope it can be of some use
Click to expand...
Click to collapse
Thanks was this working on ios or android?,
will add to FAQ
taleboblen said:
Thanks was this working on ios or android?,
will add to FAQ
Click to expand...
Click to collapse
Android.
Thx
Thnx for the information, all working ok on my samsung s4, get the last version v3.18.
thx again
backlight
first of all thanks for this thread :good:
the nite backlight on my tommy watch actually comes on after 5PM (17:00)
i am from Slovakia, phone language is English, time zone CET (GMT+1)
interesting to see that yours turns on after 23:00
chsustik said:
first of all thanks for this thread :good:
the nite backlight on my tommy watch actually comes on after 5PM (17:00)
i am from Slovakia, phone language is English, time zone CET (GMT+1)
interesting to see that yours turns on after 23:00
Click to expand...
Click to collapse
Thanks for the update. i decrypted some of the information from the official Weloop FAQ. and yes i can now confirm that you are right. it turns on from 17-8 thanks again. I have now updated the FAQ with the correct time for all Night settings. :good:
Hello! Can someone make last CHRONOS ECO apk link to download? I cant download it from google play.
k0ra said:
Hello! Can someone make last CHRONOS ECO apk link to download? I cant download it from google play.
Click to expand...
Click to collapse
Hi , the chronos eco app is not compatible with the Weloop Tommy.
Brand new Tommy, it was paired with my phone but the connection was unstable, so I tried and forced an OTA update, watch is "Updating... 0 pct" but now the phone cannot detect the watch any more
Resetting the watch will restart it in ota update mode again!
Any help appreciated...
l.capriotti said:
Brand new Tommy, it was paired with my phone but the connection was unstable, so I tried and forced an OTA update, watch is "Updating... 0 pct" but now the phone cannot detect the watch any more
Resetting the watch will restart it in ota update mode again!
Any help appreciated...
Click to expand...
Click to collapse
Happened to me also, try to delete connection under bluetooth settings on device. now connect to to weloop and pair from Weloop app. keep trying and then go to update. again persistence is key. keep trying to update suddenly it will connect and update.
Whas the watch on latest firmware when you tried the force OTA?
are you on android or ios see if there is an updated App for you phone. see link on OP for beta APK.
let me know if it works.
watch was not on latest firmware, cant' remember which version it had.
I'm on android, also v1.24 does not help as check for updates does not go beyond "Checking version...".
k0ra said:
Hello! Can someone make last CHRONOS ECO apk link to download? I cant download it from google play.
Click to expand...
Click to collapse
l.capriotti said:
watch was not on latest firmware, cant' remember which version it had.
I'm on android, also v1.24 does not help as check for updates does not go beyond "Checking version...".
Click to expand...
Click to collapse
Try to update the Weloop app, latest is 1.27.
kill weloop app
delete bt connection from phone.
Open weloop app
conmect and update. Keep trying it can take a couple of times.
If all fails if possible try with other device and or ios device
update: I used an iphone and after a few retries I got it on v3.18.
back to android, but the pairing and the sync is problematic, to say the least, on my Huawei P7...
skiiermike said:
I'm no Dev so I'm not sure if this is of any help. While updating the watch I wanted to ensure my screen stayed on so I was tapping the screen.
If you tap the center of the percentage 6 times a pop up appears for you to select your update file. If you select browse it gives you access to a bunch of folders that appear to be inside the app or maybe the watch itself. I tried it several times and 6 is the magic number to make the option appear or disappear. It doesn't work if the watch isn't upgrading it's firmware.
Hope it can be of some use
Click to expand...
Click to collapse
If it's allowing you to select an update file, surely it is showing you the file system of the phone? Otherwise, you'd have no way to put a firmware update file there to select. My understanding would be this allows you to install a firmware update file stored on your phone, although I can't test this for sure as my Android phone is currently being repaired. There's some discussion about this here and that thread also contains a very small amount of analysis on the firmware file (VERY small amount, basically just analysing the name of the binary file), and another app that is apparently in some way related (link).
For what I can glean from the description of that app (seemingly made by the manufacturer of the SoC [System on a Chip] used in the WeLoop Tommy), it would appear that devices using the SoC (including the Tommy) have three firmwares: "bootloader", "soft device" and "application". The one embedded within the WeLoop app apk has the name "ble_app_ancs.bin"; ble stands for bluetooth low energy and ancs apparently stands for apple notification centre services. That leaves "app" - my guess would be this is the "application firmware". I'm not entirely sure the roles of the "bootloader" and "soft device" firmwares, but my guess is the one or other allows the device to get into "DFU mode" (or "OTA mode" as it seems to be referred to also), meaning in theory it should perhaps be possible to recover from any bricks arising from flashing dodgy application firmwares.
So potentially there is the option of reverse engineering the firmware (easily obtained from here: http://wtf.li/ - mirror of the APKs of the app [each of which contain a version of the firmware], and also one version of the firmware (the .bin file) separately), and creating a custom/modified one, while still being able to recover (because bootloader & soft device should be untouched). However, I have neither the expertise nor the time to look into that.
Without an Android phone with which to run either of the apps right now, I can't poke about too much (I only received my Tommy today), but once I get my phone back I'll maybe try and see if I can find anything else interesting. I'd like to see if I can figure out any way to get access to the watch faces, and see if they can be reverse engineered in any way, for example.
EDIT: Here is the output of strings run on the firmware binary from the latest version of the app on http://wtf.li : http://pastebin.com/X7TQXTb3 - nothing particularly interesting, a few filenames of the source files and a few other strings seen in the watch interface and stuff.
EDIT: A couple of URLs accessed by the app (seemingly related to updating):
http://au.umeng.com/api/check_app_update
http://www.yfsmart.com/weloopInterface/getFirmware.do
I can't see anything on these sites, my guess would be they need query strings parameters or something (not really sure what, some way of identifying that the app is accessing the site) to actually do anything.
EDIT: Hmm... http://www.yfsmart.com/weloopInterface/firmware_Upload.jsp - this site seems to allow you to upload a firmware. I wonder if it allows anyone to upload a firmware, which would then be downloaded by everyone when they check for updates? Certainly seems rather insecure...There's a bunch of other pages at http://www.yfsmart.com/weloopInterface/ haven't looked through them all yet.
EDIT: From what I can glean from this page ("SoftDevices" section under the "Development Tools and Software" tab), it seems like the "soft device" firmware is essentially a bit like a library, it's a precompiled binary supplied by Nordic (company that makes chip inside Tommy) which provides all the networking functions etc. which the "application" firmware uses. So:
Code:
application = front end UI (basically, the part WeLoop made)
soft device = "library" via which application can access hardware etc.
bootloader = initial part of firmware that loads SD + app firmwares
So the only really interesting part is probably the application firmware, the part that is in the WeLoop app. That's the code that actually "matters", the rest is just low level stuff. For actually changing the interface or whatever, modifying the app firmware would be all that's needed (for example, to increase the font size or the back light duration etc.).
SifJar said:
If it's allowing you to select an update file, surely it is showing you the file system of the phone? Otherwise, you'd have no way to put a firmware update file there to select. My understanding would be this allows you to install a firmware update file stored on your phone, although I can't test this for sure as my Android phone is currently being repaired. There's some discussion about this here and that thread also contains a very small amount of analysis on the firmware file (VERY small amount, basically just analysing the name of the binary file), and another app that is apparently in some way related (link).
For what I can glean from the description of that app (seemingly made by the manufacturer of the SoC [System on a Chip] used in the WeLoop Tommy), it would appear that devices using the SoC (including the Tommy) have three firmwares: "bootloader", "soft device" and "application". The one embedded within the WeLoop app apk has the name "ble_app_ancs.bin"; ble stands for bluetooth low energy and ancs apparently stands for apple notification centre services. That leaves "app" - my guess would be this is the "application firmware". I'm not entirely sure the roles of the "bootloader" and "soft device" firmwares, but my guess is the one or other allows the device to get into "DFU mode" (or "OTA mode" as it seems to be referred to also), meaning in theory it should perhaps be possible to recover from any bricks arising from flashing dodgy application firmwares.
So potentially there is the option of reverse engineering the firmware (easily obtained from here: http://wtf.li/ - mirror of the APKs of the app [each of which contain a version of the firmware], and also one version of the firmware (the .bin file) separately), and creating a custom/modified one, while still being able to recover (because bootloader & soft device should be untouched). However, I have neither the expertise nor the time to look into that.
Without an Android phone with which to run either of the apps right now, I can't poke about too much (I only received my Tommy today), but once I get my phone back I'll maybe try and see if I can find anything else interesting. I'd like to see if I can figure out any way to get access to the watch faces, and see if they can be reverse engineered in any way, for example.
EDIT: Here is the output of strings run on the firmware binary from the latest version of the app on http://wtf.li : http://pastebin.com/X7TQXTb3 - nothing particularly interesting, a few filenames of the source files and a few other strings seen in the watch interface and stuff.
EDIT: A couple of URLs accessed by the app (seemingly related to updating):
http://au.umeng.com/api/check_app_update
http://www.yfsmart.com/weloopInterface/getFirmware.do
I can't see anything on these sites, my guess would be they need query strings parameters or something (not really sure what, some way of identifying that the app is accessing the site) to actually do anything.
EDIT: Hmm... http://www.yfsmart.com/weloopInterface/firmware_Upload.jsp - this site seems to allow you to upload a firmware. I wonder if it allows anyone to upload a firmware, which would then be downloaded by everyone when they check for updates? Certainly seems rather insecure...There's a bunch of other pages at http://www.yfsmart.com/weloopInterface/ haven't looked through them all yet.
EDIT: From what I can glean from this page ("SoftDevices" section under the "Development Tools and Software" tab), it seems like the "soft device" firmware is essentially a bit like a library, it's a precompiled binary supplied by Nordic (company that makes chip inside Tommy) which provides all the networking functions etc. which the "application" firmware uses. So:
Code:
application = front end UI (basically, the part WeLoop made)
soft device = "library" via which application can access hardware etc.
bootloader = initial part of firmware that loads SD + app firmwares
So the only really interesting part is probably the application firmware, the part that is in the WeLoop app. That's the code that actually "matters", the rest is just low level stuff. For actually changing the interface or whatever, modifying the app firmware would be all that's needed (for example, to increase the font size or the back light duration etc.).
Click to expand...
Click to collapse
Thank you for the insights and findings its all very promising. :good:
On a sidenote:
I talked to one of my colleagues who is an engineer (i'm not a dev but a Designer), it seems like we in the office are playing around with the exact same SOC from NordicSemiconducter. we tried one of the apps from the google play store and it connects to the weloop(see attached pic). The app was called "nRF Master Control Panel", tried the other apps from NordicSC but no luck.
Hopefully there will be some sort of SDK with the v3.0 release on the 30th...
I got my Android phone back today, and haven't tinkered too much with Tommy just yet, but I can confirm that the file system you are browsing when you tap the percentage 5 times during an update is just the phone file system. It browses from root (i.e. /), rather than /sdcard or whatever, which is the standard, user accessible partition, hence there are some folders etc. you may not recognise, but amongst them will be "sdcard" which will take you to your regular storage (note: this is the case on phones without a micro SD card as well), where you could easily place an update file.
SifJar said:
I got my Android phone back today, and haven't tinkered too much with Tommy just yet, but I can confirm that the file system you are browsing when you tap the percentage 5 times during an update is just the phone file system. It browses from root (i.e. /), rather than /sdcard or whatever, which is the standard, user accessible partition, hence there are some folders etc. you may not recognise, but amongst them will be "sdcard" which will take you to your regular storage (note: this is the case on phones without a micro SD card as well), where you could easily place an update file.
Click to expand...
Click to collapse
Thanks for the confirmation. :good:
taleboblen said:
Troubleshooting
Force OTA update:
Connect your watch to the charger.
Press all 3 buttons on the side simultaneously
Release the 2 side buttons, and keep the middle button pressed until you get the upgrade connecting display. (this might take some seconds)
Delete connection from phone
Connect and pair from app and upgrade
If you are on an Android device try an ios device, and vice versa
Click to expand...
Click to collapse
I tried to use the OTA update to go from 3.17 to 3.18 (on Android) but Tommy stuck on screen "WeLoop ... Udating 0%", my smartphone (HTC M8) with its APP (latest version) dont find the Tommy and it remains bricked, how do I restart it? I tried all combinations, but remains on the screen, help me!
Hi, I have a Huawei Y625-U51 (Dual-SIM) running stock Android 4.4.2/EMUI 2.3 Lite and I would like to encrypt the device, but there are no Encryption options in "Settings > Personal > Security". Is there a way to make these options available or otherwise carry out a system encryption (i.e. using adb)?
Here's the about info to the device:
Model: HUAWEI Y625-U51
Android: 4.4.2
Secpatch-Lvl: 2015-11-01
EMUI: EMUI 2.3 Lite
Kernel: 3.4.0
Build-Number: Y625-U51V100R001C577B108
I already tried carrying out a factory reset but that didn't bring up the encryption options.
I'm well-versed with Windows/Linux system hacks but new to Android, so please bear with me. Any help would be greatly appreciated. Thx.
Encrypt Huawei Y625 via rooting and shell commands
After reading up a few articles on different ways to start encryption from the command line in various Android versions, I decided to experiment and got lucky. Here's what I did (if you want to repeat these steps I suggest you attach your phone to the charging cable first. Also remember that this will likely void your warranty bla bla ) :
rooted the Huawei Y625 using kingoRoot
installed Android Terminal Emulator and ran it
Once inside the terminal I entered
Code:
su
setenforce 0
vdc cryptfs enablecrypto inplace <YourPasswordInCleartext>
(I'm not sure whether the 'setenforce' command that sets SELinux to permissive mode is actually necessary. However, this will only change runtime mode, so you needn't worry that it may persist over reboots).
The screen then immediately went blank. I had forgotten to attach the phone to the charging cable so I scrambled to find it and finally got the phone attached. But it looked pretty much dead now.
After nothing happened for another while, I pressed the start button. The screen remained blank but I got to hear the familiar boot melody. After a while (maybe 2 or 3 minutes) I pressed start again. This time, a message appeared "Wait while your phone is being encrypted" plus a slowly increasing percentage.
* When the encryption had finished, the phone booted up as usual, only this time the familiar melody and splash screen was interrupted by the message "Type password to decrypt storage"
Minor drawbacks:
The boot process is interrupted somewhat uglily in the middle of the melody and splash screen to ask for the encryption password
TouchPal's data transfer agreement pops up every time you start to enter the decryption password (presumably because the answer is written to the /data partition which is still and encrypted and therefore not available yet at this point)
Bigger drawback:
There is no way to change the encryption password using the GUI. You have to run 'vdc cryptfs changepw <YourPasswordInCleartext>' from a shell (Result should be "200 0 0"). That's a bummer if you want to enable encryption for someone reliant on GUI apps.
One last note: this being Android 4.4.2 there is no way to encrypt the whole system. The method described above will encrypt the userdata partition (mounted as /data) only.
P.S.: Sorry for not sharing article and app links, but xda anti-spam settings prevented me as a new user from posting links. So sorry for the missing convenience, but I'm sure you'll be able to find the apps mentioned yourself and as for the articles - they were interesting but relating to wildly different Android versions with different command syntax, so you're propably better off just following the steps above anyway
Initial post for Sailfish Os for the Samsung Galaxy S2 (i9100) device.
Code:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! W A R N I N G !!
!! !!
!!(Although I am using this on my backup phone)!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! Everything you do, !!
!! you do at your own peril and risk. !!
!! !!
!! I do not bear any responsibility !!
!! for your faulty devices. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! !!
!! ROM IS NOT SUITABLE FOR DAILY DRIVE !!
!! ONLY FOR EXPERIMENTAL PURPOSES !!
!! !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Making this port was challenging because Sailfish OS, from version 3, doesn't support kernel version 3.0 which is apparently the kernel on the S2.
Fortunately, the SailfishOS-porter guys do very seriously know their business and they are extremely helpful.
From here I would like to emphasize my gratitude towards them for helping me in this project! Thank you!
Requirements:
Before you start to download anything, please read it carefully.
The first requirement is your device must be rooted and you should be able to install a custom recovery (preferably TWRP) onto it.
For this ROM you can either use the stock partitions or you can re-partition to give more space to /system and /data. It doesn't matter which one you chose, I tried and both worked well.
Or if you scroll down to the New partition layout, you can use a completely unique partition layout which gives the most of the internal storage to Sailfish OS. (I currently use my device with this setup.)
Installation instructions:
1. Download all files, CM12.1 zip, Sailfish OS zip, twrp2.8.7.img and kernel*.img to the external SD card on the phone
2. Reboot into TWRP (hold buttons: Power on + Home + Volume up)
3. Do a factory reset
At this point if you want you can repartition the S2 internal storage. (Later you can put the stock layout back if you want to go back to Android.)
The steps for repartitioning are:
Download the 'Repartition: System=1GB, Data=14GB, eMMC=8MB, /preload=7MB' or the 'Repartition: System=1GB, Data=4GB, eMMC=7GB, /preload=0.5GB' .zip file and put into the external SD card. (The difference between these two is explained down at the New partition layout section
Then boot into TWRP and flash the zip as any other zip file. The script first will warn you that it cannot do the partitioning with mounted partitions and it also copies the script itself into /tmp. You just simply need to flash the copied version from /tmp and that will do the trick. The script will format the new partitions accordingly, so once it is completed you can go ahead with the next step.
4. Still in recovery, flash the CM12.1 image
5. Still in recovery, flash Sailfish Os image
6. Still in recovery, flash twrp2.8.7.img to recovery partition
7. Still in recovery, flash kernel*.img to boot partition (this step is not required since sfos 4.4, kernel is installed by flashing the zip file)
8. Reboot
9. Enjoy the latest (4.4.0.68) Sailfish OS on your i9100.
You will need patience as the first boot will take for a while. Then you can go through the initial Sailfish OS set up.
This Sailfish OS Android HAL based on CM 12.1.
Downloads:
kernel12_mtp.img for Sailfish OS 3.2.1.20
kernel33016.img for Sailfish OS 3.3.0.16
kernel34024.img for Sailfish OS 3.4.0.24
kernel41024.img for Sailfish OS 4.1.0.24
kernel43015.img for Sailfish OS 4.3.0.15
twrp2.8.7.img for i9100
CM 12.1 for i9100
Sailfish OS 3.2.1.20 for i9100
Sailfish OS 3.3.0.16 for i9100
Sailfish OS 3.4.0.24 for i9100
Sailfish OS 4.1.0.24 for i9100
Sailfish OS 4.3.0.15 for i9100
Sailfish OS 4.4.0.64 for i9100
Sailfish OS 4.4.0.68 for i9100
Sailfish OS 4.4.0.72 for i9100
Odin v1.83
AOSP-LP-Kernel+_25-08-2015_TWRP-2.8.7.0.tar
Repartition: System=1GB, Data=14GB, eMMC=8MB, /preload=7MB
Repartition: System=1GB, Data=4GB, eMMC=7GB, /preload=0.5GB
Stock partition pit file
kernel07_flatpak (kernel with Flatpak support. Flatpak install/usage instructions.)
Some useful tips:
Low power mode aka ambient mode (in Fingerterm):
Code:
mcetool --set-low-power-mode=enabled
Disable lock screen animation (in Fingerterm):
Code:
mcetool --set-lockscreen-animation=disabled
Some useful patches:
Patchmanager 3.0
More folder icons
Operator name at bottom (Stopped working on 3.3.0.16)
Silica mail (transparent background) - Well documented here
Apps from Openrepos
Apart from the Jolla store there are plenty of other, community-made apps in Openrepos. There is a user-friendly app to install/remove apps from this source called Storeman. It can be downloaded and install from this location: Storeman
Debug/login/troubleshooting:
In Ubuntu, connect USB cable. telnet 192.168.2.15 2323 or SSH [email protected].
Notes:
On Sailfish OS, as it is a Linux system, you cannot install/run any android apps.
How to make a backup/restore with TWRP:
Now the old clunky method is no longer needed. Once you flashed the twrp2.8.7.img to the recovery partition you can boot into TWRP with the usual button combination (Hold buttons: Power on + Home + Volume up) and can make backup/restore.
Instructions for Bluetooth (On Sfos 4.3, BT works normally, don't need this magic)
BT works however turning it on/off is not as user friendly as I hoped. Here is a little instruction/troubleshooting.
Turn BT on (It only works from Settings/Bluetooth!!!!! DON'T try from TOP MENU!!):
If BT hasn't turned on since last boot:
go to Settings/Bluetooth
tap on the dot next to the Bluetooth option
If BT has turned on at least once since last boot:
go to Settings/Bluetooth and tap on the dot next to the Bluetooth option
go back to Settings
go to into Settings/Bluetooth again
tap on the dot next to the Bluetooth option (if it is not turned on repeat from Step 2! Eventually, BT should turn on.)
Turning BT off: Go to Settings/Bluetooth and tap on the white dot next to the Bluetooth option.
Notice: Never try to tap on the white dot twice without going back to the main menu of Settings.
Never try to turn BT on from Top Menu.
However, if you accidentally did any of these BT cannot be turned on again unless you:
reboot the device (this is the easiest) or
in a command line as root issue the following command 'systemctl restart bluetooth-rfkill-event.service' (this will restart the bluetooth-rfkill-event service)
I am not sure how pairing works with different devices.
New partition layout
I mentioned that I tried this Sailfish OS installation with the stock partitions and with another what created for Android 7.1.2. With the stock partitions however was a bit more sluggish than the other one. No wonder as in the stock partitions the /system has only 0.5GB and the /data has only 2GB storage and the rest 12GB is the separate internal storage (eMMC). In Sailfish the entire os (rootfs) including all directories (like /home) live on the /data partition so the 2GB was a bit tight. (The OS itself consumes about 1GB so not much left for apps and other stuff.)
With the other partition layout, the picture was a bit better as the /system had 1GB, the /data got 4GB and the rest 9GB remained for the internal storage. But the partition where the OS lives was separated from the 9GB partition. When I installed a few apps and copied some big files into the /home, I felt the limitation very soon.
Although this layout was sufficient for android but not good enough for Sailfish.
Therefore I have created my own partition table where I restructured the sizes accordingly to my need. (The lanchon repit zip file is available in the download section.)
In this new layout I gave 1GB for the /system (the prior 0.5GB was also fine as the CM12.1 base consumed only 400MB which let a 100MB free space, but I thought that might be not enough in the future so I have chosen 1GB here), I gave only 8MB for the internal storage (eMMC which is mounted into /android directory in this rom), and this made me possible to gave all the rest 14GB to the /data partition. So basically the Sailfish apps and /home can utilize the entire internal storage.
As an extra, on the S2 there is a 0.5GB /preload partition which is hidden and unused by default. In my partition setup I set 7MB to this and the rest almost 0.5GB is also added to the /data.
Go back to stock partitions
In case you would like to do this, you can download the stock partition pit file from the download section.
For this use Odin v1.83 which is also in the download section.
The steps are:
Boot the device into download mode and connect to the PC.
Open Odin v1.83 and tick the 'Re-partition' checkbox at the Option.
Then click on the PIT button and select the downloaded stock pit file.
Then click on the PDA button and select the downloaded TWRP (AOSP kernel) file.
Then click on start.
Done. You need to boot into TWRP and wipe all partitions (system, data, emmc) then you can install the stock rom back. (or if you select the stock rom at PDA instead of the AOSP kernel, it will do the repartition and install the stock rom as well. In this case, you don't need to wipe anything and the device will reboot into the stock Android at the end.)
Changelog:
15.02.2022
=========
General advice:
Patience! All (except camera) apps do start and work but they do need time. This is true for websites. When you clicked on something, wait patiently, eventually, it will start/load.
Work:
Same as previously
Improvement: Stock browser stable and works!
Do not work:
The camera app crashes the device into reboot.
03.09.2021
=========
Work:
Same as previously
Bluetooth does work, but once it is off, needs to be toggled a few times in Settings to make it turn on again.
14.06.2020
=========
Work:
Same as previously + Mobile data is fixed! (To make it work: change Protocol to IP in Settings/Mobile network/Data access point.)
Bluetooth doesn't work, it is still WIP
Do not work:
Same as previously
06.05.2020
=========
The latest version of Sailfish OS 3.3.0.16 is available to download. This requires a different kernel. Both of these can be found in the download section.
Note: With the new version the patch that displays the provider logo at the bottom on the lock screen stopped working. This issue is not related to the OS. The owner of the app should fix it.
Update: In openrepos Kodi is fixed for SFOS 3.3.0.16!
29.04.2020
=========
Work:
Screen
Touch
IMEI number is detected
Sensors (GPS, Rotation, Acceleration, Gyroscope, Magnetometer, Light & Proximity)
Wifi
MTP
Bluetooth (instruction is above)
Calls incoming/outgoing
Messages incoming/outgoing
External SD card detected and mounted to /run/media/nemo/_sdcard_name_ (where _sdcard_name_ is name of the sd card when it was formatted like 7C97-785B)
Internal SD card is mounted to /android
Pixel ratio and icons set to 1.00 (Can be changed to 0.82 which is more appropriate for the device's screen. to do this as root run the 'kimmoli-diyicons.sh 0.82' command. It will fail to install imagemagick but will set the ratio to 0.82 and as we have all icons in place it will work.)
Audio is routed to headphone if that presents
Camera front/rear (only for taking pictures)
Jolla store
findutils is installed by default (updatedb and locate commands work out of the box)
Torch
the charging icon does work properly, however, there is a little delay
can boot into TWRP recovery with the usual button combination (hold buttons: Power on + Home + Volume up)
kernel and recovery .img can be flashed from TWRP (no need for PC to flash Sailfish OS, kernel and recovery)
Low Power Mode (AKA "sneak peek" or "ambient display") works (install instruction is in this post)
The softkeys (each side of the home button) work as notification leds
Do not work:
Mobile data (WIP)
Video recording (It doesn't really work in other 3.x versions either. See my test results here.)
There is an extra little issue that is a delay in screen refresh which is related to how vsync is handled in v10 backend in qt5-qpa-hwcomposer-plugin. I managed to improve this but there is a little delay still. Probably this is the reason why we need to jump back to Settings every time before trying to turn BT on, but I am not sure.
04.04.2020
=========
Work:
Same as previously + Softkeys are used as notification leds
Bluetooth doesn't work, it is still WIP
Do not work:
Same as previously
23.03.2020
=========
Work:
Same as previously + with 'kernel12_mtp' the MTP works!
Bluetooth partially works (to switch on BT requires a reboot or issue a command manually, it is still WIP)
Do not work:
Same as previously
25.02.2020
=========
Work:
Same as previously + with 'kernel07_flatpak' the Low Power Mode (AKA "sneak peek" or "ambient display") works! (install instruction is in this post)
Do not work:
Same as previously
23.02.2020
=========
Work:
Same as previously + but from now on you don't need PC and heimdall to flash kernel and twrp
Do not work:
Same as previously
19.02.2020
=========
Work:
The same as listed earlier + with the new kernel (kernel06) I attached you can boot into TWRP with the usual button combination (hold buttons: Power on + Home + Volume up)
Do not work:
Same as previously except the TWRP/Sailfish OS boot which has fixed.
08.02.2020
=========
Work:
Screen
Touch
IMEI number is detected
Sensors (GPS, Rotation, Acceleration, Gyroscope, Magnetometer, Light & Proximity)
Wifi
Calls incoming/outgoing
Messages incoming/outgoing
External SD card detected and mounted to /run/media/nemo/_sdcard_name_
(where _sdcard_name_ is the name of the sd card when it was formatted like 7C97-785B)
Internal SD card is mounted to /android
Pixel ratio and icons set to 1.00 (can be changed, I set 0.82 which is more appropriate for the device's screen resolution see the download section)
Audio is routed to headphone if that presents
Camera front/rear (only for taking pictures)
Jolla store
findutils is installed by default (updatedb and locate commands work out of the box)
Torch
Do not work:
Mobile data
Bluetooth (the bt driver is in the kernel, so in theory, with some config file changes on the device it can work)
MTP
Video recording (It doesn't really work in other devices with CM12.1 base.)
Screen delay in refresh (related to how vsync is handled in v10 backend in qt5-qpa-hwcomposer-plugin)
the charging icon doesn't work properly: when the device is not on charger still shows it's charging (when I unplug the cable the message appears: "Charging..."
cannot boot into TWRP recovery (See Notes above)
Battery life:
In my experience the battery life is good. On standby, it can survive 10 days. (Almost 11.) I have checked once or twice daily during this period.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Pictures:
App drawer
Top menu
Settings
About product
In case somebody missed these I would like to highlight some improvements since day 1:
Now both the kernel and twrp can be flashed as an .img from twrp (no need for PC and heimdall anymore)
Plus I uploaded a kernel with Flatpak support
With kernel07_flatpak, I have installed Flatpak and Angelfish but got an error when started Angelfish.
It looks like this is a limitation of the old kernel, but there might be a workaround.
I'll keep you posted.
With kernel12_mtp, MTP works. (and bluetooth partially)
The soft keys each side of the home button are used as notification leds. As this device doesn't have leds, the softkeys can be re-used as "leds". They do blink if the device is fully charged or there is an unread incoming text message. When the device is on charger they are on, otherwise both of them are off.
Can you post your sources? I'm interested in getting an I9100 as my new phone, and was considering a port and I'm happy to see you've already done all the leg work and then some!
Also about the kernel on this phone, I've been trying to port to a tablet with weird kernel images, can you run "file (path to android base kernel image)" - if it says ForPro FPT or similar I will be very very interested in how you got this phone to boot into rootfs. Very interested in the progress you've made though :3 Thanks for the awesome rom!
Galaxyninja66 said:
Can you post your sources? I'm interested in getting an I9100 as my new phone, and was considering a port and I'm happy to see you've already done all the leg work and then some!
Also about the kernel on this phone, I've been trying to port to a tablet with weird kernel images, can you run "file (path to android base kernel image)" - if it says ForPro FPT or similar I will be very very interested in how you got this phone to boot into rootfs. Very interested in the progress you've made though :3 Thanks for the awesome rom!
Click to expand...
Click to collapse
Sorry for delay in my reply.
The necessary repos in github are:
local manifest
dhd (in here the dhd submodule has to be refreshed from mer-hybris repo upgrade-3.2.1 branch)
droid-hal-i9100
droid-hal-version-i9100
android_device
kernel
The file (path to android base kernel image) command gives me: "Linux kernel ARM boot executable zImage (little-endian)"
A new image has been generated and can be downloaded. This one includes the patch of reusing the two softkeys (each side of the home button) and they do work as a notification leds!
Currently I am working on the mobile data and bluetooth (this latter partially works but is not reliable yet).
You're a g! I just bought an i9100M (different radio ).
I do recall ofono being unfriendly towards older RIL versions, galaxy nexus afaik is unfixable in 2.0+. However, if you have any service that is exciting! I can't wait to setup my environment and play around with this! If i9100M has a different partition layout/mount points (you know how samsung is) I will blow my brains out. How is camera working? Does this image include gstreamer/droidmedia?
You've probably got this sorted way better than I could hope to sort it! I'm shocked this doesn't have more replies.
EDIT: I noticed you have a complex patch for the pixel ratio. Have you tried just setting it in your patterns?
Galaxyninja66 said:
You're a g! I just bought an i9100M (different radio ).
I do recall ofono being unfriendly towards older RIL versions, galaxy nexus afaik is unfixable in 2.0+. However, if you have any service that is exciting! I can't wait to setup my environment and play around with this! If i9100M has a different partition layout/mount points (you know how samsung is) I will blow my brains out. How is camera working? Does this image include gstreamer/droidmedia?
You've probably got this sorted way better than I could hope to sort it! I'm shocked this doesn't have more replies.
EDIT: I noticed you have a complex patch for the pixel ratio. Have you tried just setting it in your patterns?
Click to expand...
Click to collapse
I am not sure what you d understand under 'any service' but except the mobile data, everything else works fine (calls in/out, texts in/out).
I don't know the difference between the i9100 and i9100m but on the internet you probably can find something about it.
One suggestion, before you start porting, install an android onto and boot into that and note the mounting points. This can save a little time when you need to set the fixup_mountpoints in hybris-boot.
The camera works but only for pictures. The video recording doesn't work. I think this is down to the cm12.1 base what I used for my port. I think gstreamer/droidmedia are there but am not sure.
I think the reason why this doesn't get more hype because this is a very old device and except some old fashioned folks like us, not many are using anymore. I don't mind it because this is my hobby. I am going through a to-do list until all I wanted works.
Currently, as the new version 3.3.0.14 is out) I am working on to update my port to 3.3.0.14. Unfortunately currently there is no OTA but hope eventually it will be sorted.
Changing the pixel ratio is not essential as the default 1.0 is ok-ish. I have found the 0.82 better so I included the icons into my image. As the script (kimmoli-diyicons.sh) is also included, we just need to run one command as root. I may try to set the 0.82 out of the box but currently it is not my to priority. As I will need to re-build everything for 3.3.0.14, I will try to set 0.82 in the pattern file.
Please keep me posted with your progress.
edp17 said:
The camera works but only for pictures. The video recording doesn't work. I think this is down to the cm12.1 base what I used for my port. I think gstreamer/droidmedia are there but am not sure.
Click to expand...
Click to collapse
You'd 100% know if you built gstreamer, it's specified in the middleware section iirc and you have to uncomment it from your patterns. I hope it's easier to build nowadays. Also I noticed your port wasn't on the mer-wiki, if I remember my login is it okay if I add it :3 ?
EDIT: https://wiki.merproject.org/wiki/Adaptations/libhybris#Samsung - I added it to the bottom. creditted you in the edit note. you can create an account on the mer bug wiki and use it to edit the tables. I'll also be closely following this and editting it to match your progress. Tell me if you'd like any values changed!
Galaxyninja66 said:
You'd 100% know if you built gstreamer, it's specified in the middleware section iirc and you have to uncomment it from your patterns. I hope it's easier to build nowadays. Also I noticed your port wasn't on the mer-wiki, if I remember my login is it okay if I add it :3 ?
EDIT: https://wiki.merproject.org/wiki/Adaptations/libhybris#Samsung - I added it to the bottom. creditted you in the edit note. you can create an account on the mer bug wiki and use it to edit the tables. I'll also be closely following this and editting it to match your progress. Tell me if you'd like any values changed!
Click to expand...
Click to collapse
I remember that I built gstreamer and un-commented the related stuff in the pattern file. I don't know whether easier to build now because I don't know how difficult it was before. I only can compare this project against my hammerhead one a few months earlier. For the hammerhead I needed to build the image with MIC, now the rpm/dhd/helpers/build_packages.sh command does everything for you. (For this you need to export the RELEASE, EXTRA_NAME values in your .hadk.env)
Unfortunately I still don't have OBS account so I couldn't add this device into the wiki. Thank you for doing that! Unfortunately new account creation on the mer bug wiki is restricted at the moment.
I have checked the wiki you have added and if you don't mind I would like you to amend a few things:
LED works (the two softkeys have repurposed as notification leds)
GPS works
Sensors Gyro and Magnetometer both work
(I need to double check the RTC alarm and USB net.)
I updated the page. I was going to set up my build env but seeing your row in the adaptations page made me realise you're so far along, and there isn't anything I could really do to push things forward by much. Once you get data and camera working this is pretty much one of 2 daily driver stable samsung sfos ports. Congrats :3 !
Galaxyninja66 said:
I updated the page. I was going to set up my build env but seeing your row in the adaptations page made me realise you're so far along, and there isn't anything I could really do to push things forward by much. Once you get data and camera working this is pretty much one of 2 daily driver stable samsung sfos ports. Congrats :3 !
Click to expand...
Click to collapse
Thank you for the update and for the congrats but I think it is only partially my merits. I probably couldn't done this without the help of sailfishos-porter guys.
As I mentioned in the main comment, I am using my S2 with this image on it as a secondary phone already. Mobile data is not crucial as my main phone can be a hotspot and with my S2 I can connect to it via wifi. Of course this doesn't stop me trying to make that work. (The BT was almost done but I then broke something.)
The camera is a different story. Afaik the video recording generally is broken in the CM12.1 base that I chosen for this device. (That doesn't work on my hammerhead which is also using CM12.1 base.) So I think that will remain outstanding unless I try to port with a different android base.
I think will stop with this for while because the new version (3.3) is out soon and would like to upgrade to it first, then continue working on the missing bits.
Video recording works in the latest scm12.1 snapshot (YOG7D). I wish they hadn't tanked the old etherpad faq, I swear I saw something about hybris 12.1 specific video recording stuff.
If I can find another sub 20 USD i9100 I am definitely working on this, but since my i9100m is my daily driver and dualbooting isn't as easy as with other devices (espescially since YOG7D doesn't have isorec committed ). Thanks for getting so much done though, You have no idea how much it means to me that Sailfish OS is available for our device, and so stable too! :laugh:
Galaxyninja66 said:
Video recording works in the latest scm12.1 snapshot (YOG7D). I wish they hadn't tanked the old etherpad faq, I swear I saw something about hybris 12.1 specific video recording stuff.
If I can find another sub 20 USD i9100 I am definitely working on this, but since my i9100m is my daily driver and dualbooting isn't as easy as with other devices (espescially since YOG7D doesn't have isorec committed ). Thanks for getting so much done though, You have no idea how much it means to me that Sailfish OS is available for our device, and so stable too! :laugh:
Click to expand...
Click to collapse
I think the video recording also works in cm12.1 on the android side, but the problem is a, between the android and Sailfish or b, on the Sailfish side. I am not sure but when I tried to fix it on the hammerhead (same cm12.1 base) I was told the recording was broken in general with cm12.1 base. I'll see how it works (what I can do about it) after Sailfish 3.3 is out.
Have you thought about to purchase a cheap android phone to use as daily driver and using the i9100m for your Sailfish project? (You probably can get a decent second hand android phone for sub 20 maybe with better spec than the i900.)
Thanks again for the kind words. This phone (the S2) is my favorite old friend. It is indestructible . I have soft bricked so many times and managed to install many other OS but as couldn't find Sailfish OS, so I though worth a try to port. And with support of the Sailfishos-porters guys, my dream became real :good: .
Sailfish
Wow, great. I installed and the system works! Bluetooth does not work after installing the packages, but bluetooth-rfkill-event- * are not installed (error). There are few programs in the system, however. Especially browsers, the standard one hangs up (maybe there is a third-party?). Slightly slows down, but bearable.
By the way, are you not working with @linusdan? It also seems to be working on the port github com /sailfish-i9100 (link)
Sorry no link rights.
P/s By the way, I saw on the postmarket wiki site for i9100 about working kernels for our device. Available: kernel version 4.2 or mainline kernel
S2UserRU said:
Wow, great. I installed and the system works! Bluetooth does not work after installing the packages, but bluetooth-rfkill-event- * are not installed (error). There are few programs in the system, however. Especially browsers, the standard one hangs up (maybe there is a third-party?). Slightly slows down, but bearable.
By the way, are you not working with @linusdan? It also seems to be working on the port github com /sailfish-i9100 (link)
Sorry no link rights.
P/s By the way, I saw on the postmarket wiki site for i9100 about working kernels for our device. Available: kernel version 4.2 or mainline kernel
Click to expand...
Click to collapse
I am glad you managed to install it. Have you tried to re-partition the internal memory as I advised?
Yeah, the bt and mobile data is still WIP status. Hopefully will have some time to complete them soon.
For the browser, the native one doesn't hang for me. You can try to look for and install one from the openrepos. (I suggest to install the Storeman as you will find more useful apps for Sailfish OS.)
I don't know linusdan but have seen he has checked this post already. Hope he also found it useful.
I am aware of the postmarketos for the S2 and tested it on my S2. At that time (about a year ago) there was no mainline linux kernel option for the S2. Unfortunately the mainline kernel doesn't help with Sailfish because the Samsung proprietary blobs are missing from there. This means Sailfish wouldn't work. It needs the drivers from the Android layer.
S2UserRU said:
Wow, great. I installed and the system works! Bluetooth does not work after installing the packages, but bluetooth-rfkill-event- * are not installed (error). There are few programs in the system, however. Especially browsers, the standard one hangs up (maybe there is a third-party?). Slightly slows down, but bearable.
By the way, are you not working with @linusdan? It also seems to be working on the port github com /sailfish-i9100 (link)
Sorry no link rights.
P/s By the way, I saw on the postmarket wiki site for i9100 about working kernels for our device. Available: kernel version 4.2 or mainline kernel
Click to expand...
Click to collapse
I forgot to mention that there should be a folder '/edp17packages/bluetooth' where you can find the missing packages for the bt. Once you installed it, probably only need to tweak some config files and need to create some scripts. I currently started working on it.