About
Android has being used in almost all type of devices from tiny smart watches to tablets , smart TVs and portable eboards like mk802 . It seems a complete operating system in term of games and useful applications but sth whichI think is a huge problem is that Android has very small parts of GNU, this makes Android not to be comfortable for advanced users , developers and programmers . also this would be a huge problem for users like me who do not access to their PCs but they want to have some capabilities in their phone . all this reasons made me to think about porting softwares from PC to my tiny Galaxy S Plus . but I had no PC and this was my huge problem in this road. finally I could get a small compiler and start porting more bigger softwares then I decided to make a project called GNU softwares on Android and gather all softwares under one project.
Click to expand...
Click to collapse
Features / list of Softwares
all softwares are :
* Fully compiled with GCC 4.8.1/4.8.2 with Hardware floating point abi for better performance even comparing to similar smaller ones in busybox !
* Staticly linked with Musl Libc which is a lot more faster than Android's bionic or GNU's glibc with smaller size which makes them be small a lot more.
* Updated to latest ones in official repositories.
list of available softwares in my repository :
-bash -> a shell
-dash (not official GNU software but licenced under GPL) -> a shell
-patch -> generating patch files
-pexec -> parralel executing
-sed -> non-interactive stream editor
-grep -> finding patterns in files/streams
-gzip -> gnu z77 compressions algorithm implementation
-make -> makefile handler for creating automated build systems
-tar -> gnu tar archive software
-inet-utils -> utils for working with net (some utils of thid software has not been included)
-gawk -> gnu awk implementation
-marst -> algorithm 2 c convertor
-wget -> downloading files trough many protocols with proxy support
-units -> convert many units to each other
Click to expand...
Click to collapse
Downloading & Installation
All softwares are stored in my public repository HERE
* For installing get softwares from their forlder in the repository , then unzip them and copy binaries to /system/xbin .
* For net related softwares there is also a reslov.conf which should be pushed to /etc/
Click to expand...
Click to collapse
Changelog
--------15/02/2014:
*gzip: added new utilities and updated to R2.
*gzip: added new documentations to public repository.
*dash: disabled builtin printf to let ROM's printf be used instead.
---------14/02/2014
*initial release.
Click to expand...
Click to collapse
Disclaimer
We distribute softwares in the hope that it will be useful, but without any warranty. No author or distributor of this software accepts responsibility to anyone for the consequences of using it or for whether it serves any particular purpose or works at all, unless they say so in writing. This is exactly the same warranty that proprietary software companies offer: none
Click to expand...
Click to collapse
Help the project
maintaining a project with 2 millon lines of a code on a mobile is too difficult. this makes compiling large softwares like gcc impossible so I strongly need a donated VPS/dedicated server.
Click to expand...
Click to collapse
.........................
reserved
Awesome Job alireza7991! Hope this project is successful in the future.
Great will try this
Sent from my Nexus 5 using Tapatalk
Edit : because of busyboy installed in system/xbin, so I have to put the binaries in system/bin. and what can I say, ITS WORKING GREAT!
aLNG said:
Great will try this
Sent from my Nexus 5 using Tapatalk
Edit : because of busyboy installed in system/xbin, so I have to put the binaries in system/bin. and what can I say, ITS WORKING GREAT!
Click to expand...
Click to collapse
Most GNU softwares has no similar ones in busybox software set. so you should not worry about conflicting issues.
I've tried to push this file to xbin grep, patch, sed, tar and wget, but I got this : destination file exists. Enter new name. (These files from busybox)
So, what I have to do? Should I overwrite the file?
Sent from my LT15i using Tapatalk
eimoc said:
I've tried to push this file to xbin grep, patch, sed, tar and wget, but I got this : destination file exists. Enter new name. (These files from busybox)
So, what I have to do? Should I overwrite the file?
Sent from my LT15i using Tapatalk
Click to expand...
Click to collapse
1- rename files to another thing , e.g. patch -> gnu.patch
or
2- remove busybox ones(/system/xbin/*) and replace GNU ones . It's completely safe .
don't forget to push resolv.conf to /etc/ for wget.
Project status update.
2 new softwares added (inetutils + dash).
OP updated for more information.
alireza7991 said:
1- rename files to another thing , e.g. patch -> gnu.patch
or
2- remove busybox ones(/system/xbin/*) and replace GNU ones . It's completely safe .
don't forget to push resolv.conf to /etc/ for wget.
Click to expand...
Click to collapse
When I pushed resolving.conf to system/etc, I'm also getting the msg that the same file name exist.
Is there any suggestions? Tq
Sent from my LT15i using Tapatalk
eimoc said:
When I pushed resolving.conf to system/etc, I'm also getting the msg that the same file name exist.
Is there any suggestions? Tq
Sent from my LT15i using Tapatalk
Click to expand...
Click to collapse
no , I think you understood my post incorrectly;
do this steps :
1- Copy GNU softwares to /system/xbin/ and replace them with busybox ones.
2- If you are installing a wget or inet-utils then also copy resolv.conf to /system/etc
Project updated;
see OP for changelog and check repository for latest binaries and documentations.
alireza7991 said:
no , I think you understood my post incorrectly;
do this steps :
1- Copy GNU softwares to /system/xbin/ and replace them with busybox ones.
2- If you are installing a wget or inet-utils then also copy resolv.conf to /system/etc
Click to expand...
Click to collapse
Thanks for the explanations. Now its working great
Sent from my LT15i using Tapatalk
Project's files has been moved to a new powerful server with 1 GB RAM which is about 3X faster than pervious server.
please use this url to get files in new server:
http://afn7991.tk/goa
Hi alireza7991,
I'm new to all this and I'm interested in trying it out. Does this work on Samsung Galaxy Note II LTE? And if it does, do I need to download all the files and use it on my device? :/
RayySP said:
Hi alireza7991,
I'm new to all this and I'm interested in trying it out. Does this work on Samsung Galaxy Note II LTE? And if it does, do I need to download all the files and use it on my device? :/
Click to expand...
Click to collapse
Hi
1- It works on almost all devices with linux kernel and an ARM processor.
2- no, This is like Google play, you have a set of softwares available and you can install any softwares you want.
alireza7991 said:
Hi
1- It works on almost all devices with linux kernel and an ARM processor.
2- no, This is like Google play, you have a set of softwares available and you can install any softwares you want.
Click to expand...
Click to collapse
Thanks for the help mate.
P.S: I'm not to sure which software to select as I'm not used to all this stuff.
testing
testing right now on my mokee kk build ...
will feed back.
RayySP said:
Thanks for the help mate.
P.S: I'm not to sure which software to select as I'm not used to all this stuff.
Click to expand...
Click to collapse
I 've made a small description in OP but you can also search trough google. they are well documented. also I put some documentation in folder of each software.
alireza7991 said:
I 've made a small description in OP but you can also search trough google. they are well documented. also I put some documentation in folder of each software.
Click to expand...
Click to collapse
Alright sure. Will do that later on. I'm sorry if I bother you too much. :/ And Thanks for the help alireza7991. Cheers!
kewl its working....
how about nano or vim? is it possible?
btw i already have wget installed, i think it come from busybox
Related
Inspired by SimpleSU (I really love it), which is not so simple to use after all (mainly because it is intended for shipping in the ramdisk or the likes), and closed source, I made my own superuser implementation, µSuper.
I provide it to you, mainly so you can give me some feed back or just try it, whatever you prefer.
Just like SimpleSU it uses a text file.
Unlike SimpleSU this text file contains the UIDs of the apps, not their package names (which makes µSU less vulnerable to frauds). It is also not on the hard to access /system partition, but in the private data directory of µSU, and globally set to read-only.
With only 309 SLOC (app and binary combined) I think it is safe to say that it is really tiny.
The source code is publicly available on Github.
@MarcoToo I know this has been here for ages but I'm amazed this thread has less than 600 views and You've only got 3 thanks... It's my favourite SuperUser app as it uses next to no resources. The only thing wrong is that it won't work with anything above JellyBean 4.2.2 which is a shame; I don't supposed you plan to support further Android versions? or is it easy for me to build this to support further versions?
Thanks anyway, all the people not using this are missing out
HTCDreamOn said:
@MarcoToo I know this has been here for ages but I'm amazed this thread has less than 600 views and You've only got 3 thanks... It's my favourite SuperUser app as it uses next to no resources. The only thing wrong is that it won't work with anything above JellyBean 4.2.2 which is a shame; I don't supposed you plan to support further Android versions? or is it easy for me to build this to support further versions?
Thanks anyway, all the people not using this are missing out
Click to expand...
Click to collapse
theres a reason to it, because the developer hasn't kept the app updated, while supersu is updated almost weekly. The lastest SuperSU has way more support as to this because it is outdated, and in beta at that. Safer and more compatible alternative would be SuperSU
Aiko0923 said:
theres a reason to it, because the developer hasn't kept the app updated, while supersu is updated almost weekly. The lastest SuperSU has way more support as to this because it is outdated, and in beta at that. Safer and more compatible alternative would be SuperSU
Click to expand...
Click to collapse
I see your point but I still stick with this SU: SuperSU is closed source, and even Koush' open source Superuser app is theoretically less secure than this, due to the whole granting mechanism; with µSuper the user must explicitly select which apps gain su access whether they ask for it or not, and the code is so small there's little which could go wrong. Each to their own, though , I use this because the Desire Z is lacking in memory and CPU power so every little helps, but on a more powerful device it wouldn't bother me.
HTCDreamOn said:
I don't supposed you plan to support further Android versions? or is it easy for me to build this to support further versions?
Click to expand...
Click to collapse
I think the location for app files has changed from /data/data to something else. Since µSuper's su binary uses a hardcoded path to the permissions file (using an environment variable would be quite unsafe), the only things you would have to change are the targetSdkVersion in the app's AndroidManifest.xml and (if it did change) the path to the permissions file in su.c.
MarcoToo said:
I think the location for app files has changed from /data/data to something else. Since µSuper's su binary uses a hardcoded path to the permissions file (using an environment variable would be quite unsafe), the only things you would have to change are the targetSdkVersion in the app's AndroidManifest.xml and (if it did change) the path to the permissions file in su.c.
Click to expand...
Click to collapse
Forked and synced let's see if I can fix this for later versions I don't suppose you'd know how to implement this into a ROM (using source code)? From the README I assume I'm allowed to
Edit: I've created a xposed module which works with the banking app version 1.7.1 see post below.
---------------------------------------------------
Edit: The changes needed to work with the latest version of the app (1.7.1) are listed in a post below below.
---------------------------------------------------
*There was a error in the diff file. I've uploaded the correct version. Also this patch will definitely not work with the latest version of the app.*
I managed to patch the Barclays mobile banking app version 1.4.2 to make it work with cyanagonmod 10.0 and cyanogenmod 11.
I realize that the current version on play store is 1.7.1 but I haven't updated to the latest version yet. If you do try the latest version please let me know if it differs greatly from the current version in it's root checks
I'm not going to attach the patched apk since using banking app from a stranger on the internet is really not a smart thing . Instead I will detail the work I did which hopefully someone else will find useful.
This guide is geared towards more technical people who already have some experience with android development. It will not give a detailed step by step how to, rather a general information about the process.
Obfuscation methods used in the app
The app obfuscates the names of some but not all of the namespaces/classes/methods which can stump some decompilers.
It seems to generously sprinkle useless switch statements and loops which does nothing but make the code appear way more complicated than it really is. I would guess quite a lot of the bulk in the code is coming through these dummy statements. smali2java-toolkit was of great help to figure this out.
All strings in the app have been encrypted by a simple xor algorithm which is then decrypted at run time just before they are used:
for example rather than
Code:
myfunction(“Hello world”)
the code writes something in the sort of:
Code:
myfunction(decrypt(“Juqqdxidqw”, 'x'))
The decryption function is a static method 'bЮЮЮЮЮЮ' in the class appears to be 'rrrrrr.srrrrr' (the method/class/namespace names are obfusecated)
I extracted the decompiled code from this method to write a console application which let me decrypt any string in the application:
Code:
static String decrypt(String crypStr, char keyChar) {
char[] arrayOfChar1 = crypStr.toCharArray();
char[] arrayOfChar2 = new char[arrayOfChar1.length];
for (int i = 0; i < arrayOfChar1.length; i++)
{
int j = keyChar ^ arrayOfChar1[i];
arrayOfChar2[i] = ((char)j);
}
return new String(arrayOfChar2);
}
Anti root methods used in the app
Checking for 'test-keys' string in the build tag. (/system/build.prop file)
Checking for superuser related package/apk files.
Checking for superuser hider package/apk files.
Checking for existance of 'su' binary
Attempting to execute 'su' binaryThe above checks are done both in the java/dex code and in a native code library.
Defeating the anti-root methods in Java/dex code:
The Java code is fairly easy defeat since changing the strings of the apk/file names which are checked as root related will make it think that no 'bad' apps are on the phone.
A bulk of checks happen in the isRootedDevice method of the com.barclays.android.application.BMBApplication class. While it checks for quite a lot of apk's, for my particular purpose I only needed to patch 2 lines in the method:
Smali file line 306 – which starts the checks for “test-keys” string in the build tag.
Smali file line 407 – which start the check for the string “/system/app/Superuser.apk”.The next method in the same class 'runRootCommand' attempts to execute 'su'
Smali line: 956 – which contains the string “su” which will be passed to java.lang.Runtime.exec
A (mostly?) duplicate of the isRootedDevice function exists in the com.barclays.android.container.DeviceData the relevant lines are :
smali file line 1237: "test-keys" string check
smali file line 1271: "/system/app/Superuser.apk" file checkAll of the above checks can easily be defeated by changing the the string so that it will check for a non existent package or file.
Keep in mind that all the strings listed above are in encrypted form. You can use the decrypt function listed above to decode them. I found the key char/byte needed to decrypt a given string is in the very next line to the one containing the encrypted string.
Defeating the anti-root methods in Native library
From what I can see the exact same tests which were done in the Java code is repeated in the native code library 'libtest_ndk.so'. As this check appears to form part of the authentication mechanism i don't believe it's possible to simply stop this check from being called from the Java code.
Also the com.barclays.android.container.sampler.SharedLibraryLoader which loads the native library appears to be doing some kind of checksum validation. While this probably could be easily worked around, disassembling an arm shared library was non trivial for me.
My approach was to write another native library which would hook into all the system calls such as 'system' 'stat' 'fopen', '__system_property_get' and redirect any operations to non existent targets, or change the return value. This achieves the same thing as what was done for the java code.
I put in some extra code into the smali classes to load my native library and to call it's initializer with the path to the actual native library.
Basic steps performed to patch the library:
Use apktool to decompile the original apk.
Code:
apktool d barclays.apk barclays
Use smali2java as helper to understand the code: This tool cannot decompile the critical check functions due to obfuscation. However it made it easier to understand the smali files generated by the apktool.
Patch the smali files to work around the checks as described above.
Build the hooking native library seperately
Code:
~/adt/adt-bundle-linux-x86_64-20131030/sdk/tools/android update project --path . --target android-19
ndk-build
Include the hooking shared library into the lib/armeabi of the decompiled package and change the smali files to load the new shared library.
Use apktool to rebuild the apk.
Code:
Apktool b barclays barclays.apk
Sign the apk from using your own key.
Create keystore:
Code:
keytool.exe -genkey -v -keystore my-release-key.keystore -alias release -keyalg RSA -keysize 2048 -validity 20000
Sign Keystore:
Code:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore barclays.apk release
Attached is the code for the hook library native project and the diff for the smali changes. Please note that this is for the smali files for generated by apktool (v1.5.2) for the version 1.4.2 of the Barclays mobile banking app.
For Users of other ROMs/SU applications and root hiders.
The app checks for a lot of common packages which I did not bother to patch since I don't use them, but if you do then you should put fixes for all those package/file names in both the smali and native code hook library.
A non exhustive list of files it check are:
Code:
/system/bin/amphoras
/system/bin/su
/system/xbin/su
/system/app/superuser.apk
/data/data/com.amphoras.hidemyroot
/data/data/eu.chainfire.supersu
/data/data/stericson.busybox
/data/data/stericson.busybox.donate
/data/data/com.jrummy.busybox.installer.pro
/data/data/com.jrummy.busybox.installer
/data/data/com.rootuninstaller.free
/data/data/com.rootuninstaller
Hey i will try this out shortly and post a APK (whether you use it or not thats up to you, but i am well known in the xperia play section of this website and should be trusted, Still its up to you.)
EDIT: well i am not a android developer, i can follow almost all this post except the bits about the native library any chance of a bit more information
specifically this bit "Include the hooking shared library into the lib/armeabi of the decompiled package and change the smali files to load the new shared library."
i assume that means just simply copy the built lib file in to that folder then include the file in the code somewhere? where do i do that to?
Sorry about the late reply but I just saw this message.
fma965 said:
EDIT: well i am not a android developer, i can follow almost all this post except the bits about the native library any chance of a bit more information
specifically this bit "Include the hooking shared library into the lib/armeabi of the decompiled package and change the smali files to load the new shared library."
i assume that means just simply copy the built lib file in to that folder then include the file in the code somewhere? where do i do that to?
Click to expand...
Click to collapse
That's pretty much correct. There is already a 'libtest_ndk.so' file in the lib/armeabi folder of the apk. You just have to build my code from the zip file to get the libhooktest.so, which should then be copied into the lib/armeabi folder alongside the libtest_ndk.so.
Edit: Not sure if this is enough instructions. I'm just not good at writing instructions. Steps you need to build the native library are in my post. If you need more info i suggest about building the library http://code.google.com/p/awesomeguy/wiki/JNITutorial#Setup_Environment is a good
Afterwards you have to do the modifications I've listed in the diff to the .smali files.
But i have some bad news about this patch:
The diff file i have attached in the post is wrong. I've mistakenly uploaded the patch to reverse the changes i did . I will update the post with the correct diff file.
It will only work for Barclays app version 1.4.2. it will definitely not work for the latest version of the app which is 1.7.1.
I'm currently going through the code of 1.7.1 I've made some headway into the code but there I'm quite way off from getting it to work.
If you wish I can give you a copy of the original 1.4.2 of Barclays app, the built lib file and the patched app. I would recommend against using the patched app blindly but it might make it easier to figure out the changes i did. I would rather not upload them to xda though.
HiddenRambler said:
Sorry about the late reply but I just saw this message.
That's pretty much correct. There is already a 'libtest_ndk.so' file in the lib/armeabi folder of the apk. You just have to build my code from the zip file to get the libhooktest.so, which should then be copied into the lib/armeabi folder alongside the libtest_ndk.so.
Edit: Not sure if this is enough instructions. I'm just not good at writing instructions. Steps you need to build the native library are in my post. If you need more info i suggest about building the library http://code.google.com/p/awesomeguy/wiki/JNITutorial#Setup_Environment is a good
Afterwards you have to do the modifications I've listed in the diff to the .smali files.
But i have some bad news about this patch:
The diff file i have attached in the post is wrong. I've mistakenly uploaded the patch to reverse the changes i did . I will update the post with the correct diff file.
It will only work for Barclays app version 1.4.2. it will definitely not work for the latest version of the app which is 1.7.1.
I'm currently going through the code of 1.7.1 I've made some headway into the code but there I'm quite way off from getting it to work.
If you wish I can give you a copy of the original 1.4.2 of Barclays app, the built lib file and the patched app. I would recommend against using the patched app blindly but it might make it easier to figure out the changes i did. I would rather not upload them to xda though.
Click to expand...
Click to collapse
No worries about the late reply, yeah you basically told me what i assumed it was i had to do, however when i was trying to do it i didn't have a 1.4.2 apk so was trying ot use 1.7.X and obviously failed .
Yeah the modifications to smali files is easy well when you know what your changing xD
if you could upload the apk for 1.4.2 that would be great, i would assume that as long as the signature matches the official apk its untampered, your modified one will obviously be signed with a different signature though.
:cyclops:
Good news. I've managed to get latest version 1.7.1 patched . I will try to post the patch information this weekend. In the meantime i suggest anyone interested download a copy from the play store and keep a backup of the apk in case they release a new version.
Fix for latest version of the mobile banking app (version 1.7.1)
I've figured out the changes required for the v1.7.1 of the app which is the latest version as of this post.
Changes from the old 1.4.2 are:
Almost all the classes in the app are now obfuscated, whereas before only some of the core class names were obfuscated.
The string encryption has changed. rather than a single encryption function it now uses a group of functions to perform the encryption. rrrrrr/vuuuvu class seems to manage invoking the proper decryptor based on the arguments.
All root checking is now done via the native library.
Native library now does some checks as soon as it's loaded before any methods are called.
The last change is a big problem since its not possible to do the patching of the dll after loading it as was done before. The onload/init of the dll exits the whole application as soon as it detects the phone is rooted.
My solution was to use a modified version of the 'crazy_linker' custom loader library which comes with the ndk to load the library into memory without invoking it's onload/init functions. This lets us hook into the necessary functions before they are called.
I've attached the smali changes as a diff and the new native hook library in this post.
As a side note I think the version 1.4.2 is a far better version. Why on earth would a banking app need to permissions to take pictures, who spends their time 'customizing' a banking app with personal pictures.
Edit: I've fixed a bug where the root was still being detected when used with chainfire su app. Special thanks to lil-diabo for helping me fix the issue. :good:
Xposed module for barclays banking app 1.7.1
Edit: New version (BarcPosed1.1.apk) has some support for barclays pingit. I've not tested this my self as I don't use the application personally. If anyone tries it please let me know.
I've converted my patch into xposed module. This module is compatible with the current banking app (version 1.7.1).
Please consider this as a beta version for now. I've tested it on cyanogenmod but it might have some issues with other roms. If you try it please let me know if it worked.
Assuming you already have a working xposed installation the steps to get the app working are:
1) Install banking app from playstore. Make sure it's version 1.7.1
2) Install the BarcPosed.apk from my post.
3) Run the BarcPosed app and click the 'install' button. You will need to grant it root permissions.
4) Enable the module in xposed and reboot.
5) Use the barclays app as normal.
6) Disable automatic updates for the banking app to prevent it from updating.
I've included the source code for the app.
Thanks, works perfectly. You sir (or madam) are a genius
Sent from my GT-I9300 using XDA Premium 4 mobile app
Works like a charm
Just tested it and it works!
Most excellent, Thanks again for your hard work.
So much easier than having to manually edit the files etc.
It works,excellent job, finally can use Barclays mobile, thank you very much
sent from Samsung Galaxy S4 Active
Just tested and it worked marvellously. Could you please make a fix for pingit as well?
Zell Dinch said:
Just tested and it worked marvellously. Could you please make a fix for pingit as well?
Click to expand...
Click to collapse
HiddenRambler said:
Edit: New version (BarcPosed1.1.apk) has some support for barclays pingit. I've not tested this my self as I don't use the application personally. If anyone tries it please let me know.
Click to expand...
Click to collapse
I've updated my post with version that stops the rooted warning from pingit. Don't use pingit myself so don't know how successful it is. Let me know if you try it.
Brilliant, been struggling in vain with Root Cloak Plus on my N5 but this works perfectly. Many thanks.
Sent from my Xoom Wifi using Tapatalk
Before I switched to KK, I used Barclays App 1.3 doing a small trick with SuperSU. It worked perfectly. I signed the app myself so that it wouldn't update itself from the market and so that I could still use the automatic update in the market.
Do you think it would be possible to make your AMAZING solution work with my v1.3 signed app instead?
thnx
vivelafrance said:
Before I switched to KK, I used Barclays App 1.3 doing a small trick with SuperSU. It worked perfectly. I signed the app myself so that it wouldn't update itself from the market and so that I could still use the automatic update in the market.
Do you think it would be possible to make your AMAZING solution work with my v1.3 signed app instead?
thnx
Click to expand...
Click to collapse
You could try "root cloak" or "root cloak plus" they probably will work.
Actually, what I did, is sign the app with OneClickSigner and it worked fine. Now, the app is not attached to the market anymore since the signature changed, so that means I can continue to use the "automatic update" from the market and it won't ask me to update the app all the time when Barclays upload a new version.
thnx
HiddenRambler said:
...
I've converted my patch into xposed module. This module is compatible with the current banking app (version 1.7.1).
...
Click to expand...
Click to collapse
Hello,
I have a request, can you make it compatible with GingerBread plz?
Thanks.
LoMAX_HUN said:
Hello,
I have a request, can you make it compatible with GingerBread plz?
Thanks.
Click to expand...
Click to collapse
Can you try the attached apk. It's the same code but built as an app for gingerbread version (API lvl 10). I couldn't test it as I don't have a phone for that version.
If it doesn't work please give me a logcat.
Banking Works, but Not PingIt
HiddenRambler said:
Edit: New version (BarcPosed1.1.apk) has some support for barclays pingit. I've not tested this my self as I don't use the application personally. If anyone tries it please let me know.
I've converted my patch into xposed module. This module is compatible with the current banking app (version 1.7.1).
Please consider this as a beta version for now. I've tested it on cyanogenmod but it might have some issues with other roms. If you try it please let me know if it worked.
Assuming you already have a working xposed installation the steps to get the app working are:
1) Install banking app from playstore. Make sure it's version 1.7.1
2) Install the BarcPosed.apk from my post.
3) Run the BarcPosed app and click the 'install' button. You will need to grant it root permissions.
4) Enable the module in xposed and reboot.
5) Use the barclays app as normal.
6) Disable automatic updates for the banking app to prevent it from updating.
I've included the source code for the app.
Click to expand...
Click to collapse
xposed is fantastic!
This worked for me. It's so nice to be able to update my SU binaries without fear of breaking the app.
I'm running Cyanogenmod v10.2.0 on a Samsung Galaxy S3 (International) (i9300).
I tried using the v1.1 of the BarcPosed.apk with PingIt, but it still tried to gain root and then closed itself immediately.
https://github.com/JackpotClavin/Android-Blob-Utility
The purpose of this program is to help AOSP-based ROM developers quickly and easily find out which proprietary blobs need to be copied into the ROM's build, or built using source. How the program works is you do a /system dump into a folder on a Linux computer. Then you make the program using the 'make' command; then you can run it.
First off, the program will ask you what the sdk version of the /system dump you pulled happens to be. For example, if your /system dump is Android 4.3, and intend port a 4.3-based ROM, then enter 18 and press enter.
When it prompts you for location of the /system dump you pulled, if the location of the build.prop of the /system dump is under:
Code:
/home/user/backup/dump/system/build.prop
then just use:
Code:
/home/user/backup/dump/system
The program will now ask you for your device's manufacturer's name, and the device's name. For my Verizon LG G2, I entered "lge" and "vs980" respectively.
The utility then will ask you how many files you wish to run through the program. In the case of my LG G2, the KitKat build requires two main proprietary camera-related libraries to run (/system/bin/mm-qcamera-daemon and
/system/lib/hw/camera.msm8974.so).
So I typed in 2 and pressed enter (because I'm running two proprietary files through the program)
Then simply typed in:
Code:
/home/user/backup/dump/system/bin/mm-qcamera-daemon
and pressed enter and it printed out *every* file needed to get /system/bin/mm-qcamera-daemon running (the file might be proprietary, or it can be built from source).
Then it asked for the final proprietary file, so I simply typed in:
Code:
/home/user/backup/dump/system/lib/hw/camera.msm8974.so
and pressed enter and it printed out *every* file needed to get /system/lib/hw/camera.msm8974.so running (the file might be proprietary, or it can be built from source).
An example usage of this program can be found here: https://raw.githubusercontent.com/JackpotClavin/Android-Blob-Utility/master/Example_Usage.txt
That's 106 proprietary blobs done in a flash!
The beauty of this program is that it's recursive, so if proprietary file 'A' needs proprietary file 'B' to run, but proprietary file 'B' needs proprietary file 'C' to run, which in turn needs 'D' to run, then simply entering proprietary file A to run will print out all A, B, C, and D nicely formatted so that you can simply copy the output and place it in a file under vendor/manufacturer/codename/codename-vendor-blobs.mk file in your AOSP build source tree's root.
Another great thing about this program is that it doesn't just catch the libraries needed to satisfy the linker, but rather, it will also print out those libraries that are called within the actual code of the library itself, like:
Code:
dlopen("libfoo.so", RTLD_NOW);
libfoo.so is not marked as a shared library, so the linker won't complain that libfoo.so is missing, and there might be no sign that libfoo.so missing and needed, but when it's time for the daemon or library to run, it won't show any sign that something is wrong, until you see that it doesn't work. This program will catch and display that libfoo.so is needed.
So basically:
1. Extract /system dump image
2. Tell program the SDK version of your /system dump
3. Tell program the location of your /system dump
4. Tell the program your device's manufacturer's name
5. Tell the program your device's codename
6. Tell program how many files you wish to run through the utility
7. Tell program the location of the file(s) you wish to run through the program.
8. Copy the output of the utility to a text file under vendor/manufacturer/codename/codename-vendor-blobs.mk
reserve
Hi,
I'm a noob and don't worry about my silly question.
I'm trying to build my first cm-rom and tested your tool. Thanks a lot for your work, it worked for me.
I'm a little bit curios about your point 5. Where can I find all the files I need for my own source-tree/device?
It would be nice if you can give me a hint.
Thanks a lot and greetings from germany
Greetings from the US
Do you mean the device folder the ROM? You can look at similar devices to your device and see what they did and make the changes to build Android.
This is the device folder for the Nexus 5 -> https://android.googlesource.com/device/lge/hammerhead
This tool is under-recognized. I think it's a really great way to find which blobs are dependencies!
Codename13 said:
This tool is under-recognized. I think it's a really great way to find which blobs are dependencies!
Click to expand...
Click to collapse
Thanks! Are you developing a ROM? Let me know if it helps!
Sent from my LG-VS980 using XDA Free mobile app
Could this be updated to Lolipop?
2GigayteSD said:
Could this be updated to Lolipop?
Click to expand...
Click to collapse
What do you mean? I added support for SDK version 20 if that's what you're asking.
Sent from my LG-VS980 using XDA Free mobile app
Does that mean I can port AOSP to any device just by getting all the necessary blobs? I'm not sure but I'm trying to port Lollipop to my device but I don't really have a clue how to do it/what's needed to do it. Will this be useful for me? Thanks.
cikoleko said:
Does that mean I can port AOSP to any device just by getting all the necessary blobs? I'm not sure but I'm trying to port Lollipop to my device but I don't really have a clue how to do it/what's needed to do it. Will this be useful for me? Thanks.
Click to expand...
Click to collapse
It helps with making ROMs for devices that don't have support (either the model is brand new or the device never gained AOSP ROM support for whatever reason)
Basically, in the early stages of porting ROMs, certain things won't work (graphics, camera, radio) and this is mostly due to not having the correct proprietary files needed for the OS to interact with the hardware. The proprietary files have dependencies (they rely on other libraries, which in turn may rely on other libraries, and so on and so forth until all proprietary libraries are satisfied).
In the case of my LG G2, there were a total of 92 proprietary files that needed to be pushed to the device in order to get just camera working. Instead of pushing one library at a time and getting a logcat or strace dump of what the daemons are calling or depend on, I wrote this program to recursively search for all proprietary libraries needed to satisfy a proprietary library (or in the case of the camera for my G2, there were two proprietary libraries needed that required those said 90 other proprietary blobs).
So rather than pushing libraries, (then gathering logs and stracing) and hoping that the one you just pushed is the one that will get your camera, radio, etc to work, you run your known proprietary daemons or libraries through this program and it will print out the necessary libraries to get it working, in a fraction of a second
Can you go through the actual "porting" process because from what I understand you have done it? If I'm correct to port a ROM you need to have working ROM from other device? If yes, does that device have to be same manufacturer? Lets say I do have working AOSPA kitkat for my device so I need to get AOSPA lollipop and exchange the certain files and then I'll able to run it? Once again if it's like that then I use your tool and get necessary blobs? I don't have a clue about this stuff, I only build ROMs but now time has come that my device is unsupported so can you give me some tips, thanks.
This is interesting. Going to have to try this out tomorrow.
cikoleko said:
Can you go through the actual "porting" process because from what I understand you have done it? If I'm correct to port a ROM you need to have working ROM from other device? If yes, does that device have to be same manufacturer? Lets say I do have working AOSPA kitkat for my device so I need to get AOSPA lollipop and exchange the certain files and then I'll able to run it? Once again if it's like that then I use your tool and get necessary blobs? I don't have a clue about this stuff, I only build ROMs but now time has come that my device is unsupported so can you give me some tips, thanks.
Click to expand...
Click to collapse
If you don't have a clue then dont do it, please! Work your way up. First step in this hypothetical is to wait for aospa 5.0
Thanks a lot for this tool
just one thing.. i cant get the blobs for my wireless (wl12xx)
Rest all done
andynoob said:
Thanks a lot for this tool
just one thing.. i cant get the blobs for my wireless (wl12xx)
Rest all done
Click to expand...
Click to collapse
Is it possible that each wl12xx library only relies on AOSP libraries (has no dependencies?)
See if they can be built from source!
Sent from my LG-VS980 using XDA Free mobile app
JackpotClavin said:
Is it possible that each wl12xx library only relies on AOSP libraries (has no dependencies?)
See if they can be built from source!
Sent from my LG-VS980 using XDA Free mobile app
Click to expand...
Click to collapse
Manufacturer hasnt provided the source code(Kernel) . Anyways thanks a lot for this tool :good: :good:
how to use it?
by reading the detailed instructions?
Sent from my LG-VS980 using XDA Free mobile app
JackpotClavin said:
by reading the detailed instructions?
Sent from my LG-VS980 using XDA Free mobile app
Click to expand...
Click to collapse
should we adb pull /system first?
*edit
I did it! but where is the directory out?
J,
You are a life saver ! Subscribed. Will add link of thread to my signature. Will dance happily for some hours! :good:
Will seek therapy. :silly:
m
DualBoot Patcher - Add Support
(Unofficial & Official)
Dualboot patcher is an open source project that makes an android phone compatible with multiple roms by patching them.That is we can install more than one rom on an android device at a time. But we cant use both at the same time,a restart is required to switch between roms. This awsome app is contributed to the android world by @chenxiaolong.
Pre Requirements :
Device must be rooted.
Custom recovery (twrp/cwm) should be installed.
Basic knowledge about rom flashing.
Patience
Active brain.
Can I use it on my x device right now ?
Check here the list of supported devices -Supported Devices
If your device is listed, its well and good download only the app from below links.
Downloads :
Download the app from
Mediafire
Or official server -
https://dbp.noobdev.io/downloads/
Code:
These are releases automatically built from the source by the continuous integration server.
Due to the constantly changing nature of the ROM development community, DualBootPatcher has many incremental releases as opposed to large, infrequent releases.
These releases contain the latest and greatest features, but may also have unforeseen bugs.
Be sure to make backup before installing and using these builds!
Terminal Emulator
Other Patches :
GET_PROP ; Mirror
PATCH_DATA ; Mirror
Your device is not in the list..?? Then you are at right place
NOTE: If you are new to dual boot patcher, and don't know to unbrick in case of soft/hard bricks, first take a full backup before doing anything.
Im not responsible for anything that happens to your device
Common Steps :
First download and install the app from any of the above links, open roms section.
Grant all the permissions including root permissions.
you need bellow properties (info) of your device
Code names of your device.
Archetecture.
All mount point and block device path details.
Mandatory (for boot ui) :-
Cpu temp path, brightness control path.
Flags for bootui
Grafics backends
For more info
To get these info,
Flash this from twrp and you will get most of the required details - GET_PROP
This works on all mtk 64bit devices,( should work on others also).
But details for boot ui may not be proper for all devices, you have to check it yourself.
After flashing this,
two files - info.txt and <brand_name>.yml are created in internal storage. You can edit them with any text editors if you find some details are Wrong or Missing !
Method 1: Patching data of DBP to work with your device
In this method, we required info.txt that is created on internal, make changes in it if required.
Make sure you have already downloaded, installed the app and opened roms section.
And also flashed GET_PROP.zip from link given above.
Then go to twrp and flash this script - PATCH_DATA
It will patch data of dbp app and makes it work with your device(it will takes the info from info.txt)
Now boot to system and open Terminal Emulator,
type :-
Code:
su
dbp.sh
Your device should support now.
For confirmation ->
it should ask to set kernel when you open roms section.
Set kernel, update-ramdisk in primary-rom's options, do not reboot.
Install boot ui in settings.
Now reboot to check whether boot ui is working or not.
A twrp like screen will appear during boot if its working.
If boot ui is not working, try to change graphics backends value in info.txt and reflash PATCH_DATA
No worries if boot ui is not working, you can still use the app to dual boot roms on your device
Click to expand...
Click to collapse
Method 2 : Add Official Support
In this method, you have to add the device definition to the SOURCE of DualBoot Patcher.
<brand_name>.yml created in internal can help us in doing this.
Do the required changes in it using any text editor.
(like adding some codenames used in custom roms, remove bootui part if it is not supported).
First LogIn to your github account or SignUp for free.
If ur using in mobile,Select desktop version at right bottom.
Fork DualBoot Patcher from SOURCE to your git account.
(fork option is at right top.)
Now head on to your git account, open DualBoot Patcher repo.
Check whether there is your <brand_name>.yml at /data/devices/<here>
If it is already there :- just copy all the contents of your yml file to that in git.
If the file does not exist, you have to do two things
Upload yml file to /data/devices/<here>
Edit /data/devices/CMakeLists.txt - add your <brand_name>.yml in the list
Now the source of Dual Boot Patcher that supports your device is ready in your git account.
Either you can compile the app by yourself :- Procedure ( need a lnux pc or linux server )
Or :-
Select New pull request(in your git account).
Select the same in next page also to confirm pull request.
You will have to wait for some time, and the admins will verfy your pull request,
If it is all proper, they will merge it to source.
The next release of the app will have official support to your device.
After getting support for your device, if you are strugling to use it,
Just google or youtube for dual boot patcher.
Its way of use are same on almost all devices.
Click to expand...
Click to collapse
Original thread by Chenxiaolong
https://forum.xda-developers.com/android/development/tutorial-dual-boot-roms-patcher-t3559254
Common Q &A :
This is too lengthy, it totally went over my head. Won't it be much simpler..??
1. Just download apps and patches from download section.
2. Install app, open roms section there.
3. Now reboot to twrp,
flash GET_PROP.zip and then flash PATCH_DATA.zip(should be in this order)
4. Reboot to system, open terminal emulator app and type :-
Code:
su
dbp.sh
5. Now DualBoot Patcher should work on your device
Click to expand...
Click to collapse
Something went wrong.I need help...
You are most welcome...
But please come up with info.txt, <brand>.yml and MultiBoot/devices.json
that are created in the storage(internal or external, & mention it)
Dont forget to have look into comment section befor reporting, it may solve your probleams sometimes.
Click to expand...
Click to collapse
Stuck at Roms section, what can be done.??
Probably it is not possible to make a full support for your device,
But still its possible to dual boot using this app,
But you need to try lot of workarounds by your own.
Click to expand...
Click to collapse
Not showning any device in patch roms section..!!
1. Find patched devices.json yourself,
2. Place it in internal storage.
3. Create it's symlink to /data/data/com.github.*/files/*/here.
(You can use Root Browser or romtoolbox)
Click to expand...
Click to collapse
Good @Uday Hegde.
It will help a lot of people.
kuberrocks96 said:
Good @Uday Hegde.
It will help a lot of people.
Click to expand...
Click to collapse
Thanks
flashing GET_PROP.zip and twrp says Failed to detect block devices aborting cant flash this zip
kutlay1653 said:
flashing GET_PROP.zip and twrp says Failed to detect block devices aborting cant flash this zip
Click to expand...
Click to collapse
Your device..??
Can u provide /etc/recovery.fstab from your recovery..??
Get_prop.zip have some limitations, ill try to fix them..
Uday Hegde said:
Your device..??
Can u provide /etc/recovery.fstab from your recovery..??
Get_prop.zip have some limitations, ill try to fix them..
Click to expand...
Click to collapse
Mt6592 General Mobile etab5 fstab in zip file
kutlay1653 said:
Mt6592 General Mobile etab5 fstab in zip file
Click to expand...
Click to collapse
Check with this...
Ill add it to the main thread if its working...
Uday Hegde said:
Check with this...
Ill add it to the main thread if its working...
Click to expand...
Click to collapse
it worked but when i try to patch a rom on dualbootpatcher it gives fc any idea?
Edit i forget update ramdisk but when i try update ramdisk app says cant update ?
kutlay1653 said:
it worked but when i try to patch a rom on dualbootpatcher it gives fc any idea?
Edit i forget update ramdisk but when i try update ramdisk app says cant update ?
Click to expand...
Click to collapse
Sorry, i hav no idea about that issue
You may try with older vesions...
Wait @kutlay1653 check this :-
Uday Hegde said:
Please check there is /sdcard/Android/devices.json file, manually copy it to /data/data/com.github.chenxiaolong.dualbootpatcher.snapshot/files/data-9.2.0.r199.gcfbba1c6/here
Click to expand...
Click to collapse
I have successfully edited the info.txt and *.yml files accordingly to my device but when I tried to patch it gives that "Could not determine the boot partition because this device's codename 'G42' is not recognized
Mohd.faraz.abc said:
I have successfully edited the info.txt and *.yml files accordingly to my device but when I tried to patch it gives that "Could not determine the boot partition because this device's codename 'G42' is not recognized
Click to expand...
Click to collapse
Please check there is /sdcard/Android/devices.json file, manually copy it to /data/data/com.github.chenxiaolong.dualbootpatcher.snapshot/files/data-9.2.0.r199.gcfbba1c6/here
Uday Hegde said:
Please check there is /sdcard/Android/devices.json file, manually copy it to /data/data/com.github.chenxiaolong.dualbootpatcher.snapshot/files/data-9.2.0.r199.gcfbba1c6/here
Click to expand...
Click to collapse
Tried and now same error and one more thing I think this is responsible for this. Please see attachment
Can't download patch_data.zip....
It says authorised download...
sagargjasani264 said:
Can't download patch_data.zip....
It says authorised download...
Click to expand...
Click to collapse
Mirror added in download section..
Mohd.faraz.abc said:
Tried and now same error and one more thing I think this is responsible for this. Please see attachment
Click to expand...
Click to collapse
Its an issue that dualboot patcher app can't read device.json file after modification, though i fixed correct uid,gid and permissions.
So i placed the file in internal and created a symlink to its data directory.this actually worked for me
Let me try some other workarounds and i will try to fix it..:good:
After flashing patch_dat.zip whenever i try to open ROMS options, it app force closes..
sagargjasani264 said:
After flashing patch_dat.zip whenever i try to open ROMS options, it app force closes..
Click to expand...
Click to collapse
This is the issue with latest app, that issue is even exist on supported device(coolpad note 3 lite)
Use older app, (u can use the one given in download section, mediafire link)
Stuck at this section
kutlay1653 said:
Stuck at this section
Click to expand...
Click to collapse
Ohh
Thats new issue that i saw..?
I'm not sure if many are aware, but LG TVs running webos (under webos 2.x here) probably contain a *full* installation of Qt ( in my case full Qt 5.2.1 is installed). When I said full, I mean that all Qt quick, declarative, webKit, gui, network, OpenGL, etc. Qt libraries are available .
So far I've managed to successfully test/run the following:
-simple OpenGL ES applications (webos uses the Wayland architecture, see https://wayland.freedesktop.org for details ); I can actually compile and run any client included in Weston 1.2.0, see https://wayland.freedesktop.org/releases/ for what is available.
- Qt QML, Qt GUI applications also with WebKit can all be compiled and run on the TV.
- Kernel modules: compiled CIFS module and I'm able to moutn SMBA shares under SmartShare. Recording to Samba shares not possible unfortunately....
- getevent android tool ported to linux (see https://github.com/ndyer/getevent). Very useful for finding various key events. I used it to write my own 'daemon' to listen to Magic Remote key presses and start other applications.
- I've managed to also compile qemu-i386 (from qemu-stable 2.4) so that I can run the native sopcast linux i386 client (sp-sc-auth) on the TV itself. This in combination with a custom-made Qt application for choosing sop streams and SS IPTV means that I can watch sopcast streams on my TV at the push of a remote button.
- Custom-made ambilight. I capture screen, decode produced jpeg file, do led color computations and spit them via usb (libusb available on the TV) to an arduino controlling the LEDS.
====
Needless to say, but as prerequisites you need a rooted TV, access to TV via telnet and/or ssh/sftp, extracted rootfs from your TV, toolchain and kernel sources (if you need compile additional modules). Toolchain and kernel sources are available for my TV, from the LG open-source website.
If other people are interesting I can post some more details.
I was trying to do the same thing, I compile several sources with curl library after extracting the file system , can you give me more info on the Qt library?
thanks
y=fx said:
I was trying to do the same thing, I compile several sources with curl library after extracting the file system , can you give me more info on the Qt library?
thanks
Click to expand...
Click to collapse
Well, I think that the Qt library version installed on your TV may not be the same with mine; probably it depends on the webos version. On my TV I have Qt 5.2.1 (easy to tell from the file extension,; for instance I have Qt lib files with names such as libQt5Core.so.5.2.1, etc.) By luck I'm running Kubuntu 14.04 which uses, by default, the same Qt version. So this means that I've already had all Qt headers installed under /usr/include.
In your case, you'll need to download all Qt dev library packages matching the libs. from your tv, and extract them manually somewhere. Once you have that generate makefiles using qmake, then modify them to point to your libs. and headers.
Let me know how it goes for you.
xtreme_protector said:
Well, I think that the Qt library version installed on your TV may not be the same with mine; probably it depends on the webos version. On my TV I have Qt 5.2.1 (easy to tell from the file extension,; for instance I have Qt lib files with names such as libQt5Core.so.5.2.1, etc.) By luck I'm running Kubuntu 14.04 which uses, by default, the same Qt version. So this means that I've already had all Qt headers installed under /usr/include.
In your case, you'll need to download all Qt dev library packages matching the libs. from your tv, and extract them manually somewhere. Once you have that generate makefiles using qmake, then modify them to point to your libs. and headers.
Let me know how it goes for you.
Click to expand...
Click to collapse
I did it this way for the sdl2 library, but I had to copy the whole file system and mount it to make a chroot . The problem I encountered for the QT library (the version in use on my TV is 5.4.1) it's with the compiler. I do not have a compiler that supports c++11 , I only found version 4.2.3 of gcc/g++ as a working ipk package ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/gcc_4.2.3-1_arm.ipk
Code:
Target: arm-none-linux-gnueabi
Configured with: ../gcc-4.2/configure --build=i386-pc-linux-gnu --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi --prefix=/opt --disable-nls --disable-static --with-as=/home/slug/optware/cs08q1armel/toolchain/arm-2008q1/bin/arm-none-linux-gnueabi-as --with-ld=/home/slug/optware/cs08q1armel/toolchain/arm-2008q1/bin/arm-none-linux-gnueabi-ld --enable-languages=c,c++ --disable-multilib --enable-threads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libstdcxx-pch --enable-shared --enable-symvers=gnu --enable-__cxa_atexit
Thread model: posix
gcc version 4.2.3
edit: ok I was able to fill out a small program correctly
y=fx said:
I did it this way for the sdl2 library, but I had to copy the whole file system and mount it to make a chroot . The problem I encountered for the QT library (the version in use on my TV is 5.4.1) it's with the compiler. I do not have a compiler that supports c++11 , I only found version 4.2.3 of gcc/g++ as a working ipk package ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/gcc_4.2.3-1_arm.ipk
Code:
Target: arm-none-linux-gnueabi
Configured with: ../gcc-4.2/configure --build=i386-pc-linux-gnu --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi --prefix=/opt --disable-nls --disable-static --with-as=/home/slug/optware/cs08q1armel/toolchain/arm-2008q1/bin/arm-none-linux-gnueabi-as --with-ld=/home/slug/optware/cs08q1armel/toolchain/arm-2008q1/bin/arm-none-linux-gnueabi-ld --enable-languages=c,c++ --disable-multilib --enable-threads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libstdcxx-pch --enable-shared --enable-symvers=gnu --enable-__cxa_atexit
Thread model: posix
gcc version 4.2.3
how did you fill out the qt sources ? does the qt source you compiled work?
Click to expand...
Click to collapse
I did not recompile Qt. I simply used all libs from the TV (rootfs) and local additional header files. As I said, I generate makefiles using qmake, modify them to point them to the TV libraries and then compile whatever I need... Btw. I cross-compiled my Qt programs.
Regarding the toolchain, I have version 4.6.4 (dated 20120731).
xtreme_protector said:
I did not recompile Qt. I simply used all libs from the TV (rootfs) and local additional header files. As I said, I generate makefiles using qmake, modify them to point them to the TV libraries and then compile whatever I need... Btw. I cross-compiled my Qt programs.
Regarding the toolchain, I have version 4.6.4 (dated 20120731).
Click to expand...
Click to collapse
I have always used the dynamic libraries present, however I managed to compile and package a test program. Now the next step is to do some porting, eg kodi .
good news www.cnx-software.com/2018/03/19/lg-releases-webos-open-source-edition-optimized-for-raspberry-pi-3/
y=fx said:
I have always used the dynamic libraries present, however I managed to compile and package a test program. Now the next step is to do some porting, eg kodi .
good news www.cnx-software.com/2018/03/19/lg-releases-webos-open-source-edition-optimized-for-raspberry-pi-3/
Click to expand...
Click to collapse
Regarding kodi, I've already started . I've started with Jarvis since it has support for wayland. Unfortunately even this requires g++ 4.7.x or better. Not sure if teh standard arm gcc toolchain (4.7 on ubuntu 14.0.4) produces runnable executables. Will try this evening, though.
Edit: The arm cross-compiler installed by default in ubuntu 14.0.4 works. So, most likely any " arm-linux-gnueabi" will work for you. I'm using now "arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.7.3-12ubuntu1) 4.7.3"
If you have ideas regarding kodi porting, let me know. It would be just great to have it running on our TVs.
===
Also the link you posted regarding webos on RPI looks promising, indeed. Question is what is inside .
Edit: kodi already starts but cannot create the window system. I know what happened: the modified configure script failed to enable building the wayland back end. Will try again, although my TV uses really old wayland ( version1.1.0). I'll keep you posted...
Well, regarding kodi, I enabled wayland, libraries load fine, but now I get a "Illegal instruction" error. This is a tough one since without proper tools (gdb, strace), it's difficult to figure out what's going on.
If anyone could help figuring this one out, let me know.
Hi this morning I ported a small application. I posted the app on github https://github.com/Sputkin/uMario_Jakowski .
xtreme_protector said:
Well, regarding kodi, I enabled wayland, libraries load fine, but now I get a "Illegal instruction" error. This is a tough one since without proper tools (gdb, strace), it's difficult to figure out what's going on.
If anyone could help figuring this one out, let me know.
Click to expand...
Click to collapse
How are you connecting dynamic libraries ? how you have configured the project
y=fx said:
Hi this morning I ported a small application. I posted the app on github https://github.com/Sputkin/uMario_Jakowski .
Click to expand...
Click to collapse
Nice, will have a look. How did you manage to pack it as an ipk ? Where does it install ? Is a native app, i..e, does it appear in the webos start menu ?
y=fx said:
How are you connecting dynamic libraries ? how you have configured the project
Click to expand...
Click to collapse
Right, so it's a mix of existing libs from TV (rootfs) and my own compiled ones. The process was as follows:
- configure kodi for wayland, cross-compilation, arm arch, etc. Of course the configure script would stop in some missing library.
- Whenever the above happens, patch/modify the configure script to skip checking for the installed lib. If the library exists in the rootfs, nothing to do.
- Else, download source of the library, cross-compile it for arm, install it in some dir.
- In the end, the configure script finishes...
- Trying then to make kodi, the linking process stops for missing libraries (on my TV the libs. names end in libxxx.so.ver.subver_etc.so, so no way for the patched build system to find the proper name for the *.so file). In this case, I've manually modified the Makefile to point to the library (using -l:libxxx.so.ver.subver_etc.so). It's a very cumbersome process, but hey, for now it's good enough...
===
I could upload my configure file for kodi Jarvis. Also, the main modified Makefile might help, to get you an idea about what I mean...
My point is that I;m just trying to see if kodi 'can' work, without lots of source code modifications. If this succeeds, of course, we need to take a step back and build a sound build system for the webos.
One more update regarding kodi: I now have gdb and strace running on the TV, and i can trace where the "illegal instruction" happens. Unfortunately it is in the boost library, in function try_lock() (which has different implementations for different architectures). I'm going to try to bypass the error by forcing to use the pthread library. Let's see what comes out .
xtreme_protector said:
Nice, will have a look. How did you manage to pack it as an ipk ? Where does it install ? Is a native app, i..e, does it appear in the webos start menu ?
Click to expand...
Click to collapse
I used the tools provided in the sdk, ares-package ares-install ..... etc . here you can find my template https://github.com/Sputkin/uMario_Jakowski/tree/master/webos_ipk
if you can, upload the configuration file for jarvis branch
Well, kodi starts now !!!
Let's see what works .
Well, no 'magic remote' input, so cannot tell ....
y=fx said:
I used the tools provided in the sdk, ares-package ares-install ..... etc . here you can find my template https://github.com/Sputkin/uMario_Jakowski/tree/master/webos_ipk
if you can, upload the configuration file for jarvis branch
Click to expand...
Click to collapse
Please see my prev. questions. How did you pack it ? What it uses (SDL maybe ???). Up to my head in the kodi stuff. I need to get them 'magic mote'' working, just to see where the next crash is....
you can connect an HID device
---------- Post added at 06:51 PM ---------- Previous post was at 06:40 PM ----------
xtreme_protector said:
Please see my prev. questions. How did you pack it ? What it uses (SDL maybe ???). Up to my head in the kodi stuff. I need to get them 'magic mote'' working, just to see where the next crash is....
Click to expand...
Click to collapse
uses the SDL2 library entirely so it should work on any version with this library . To package, you must use the ares-package script provided in the LG SDK , copy the appinfo.json file and the images in the folder where you have compiled kodi , change the name of the executable in the appinfo.json file and then exec
Code:
ares-package .
Ok, clear, thanks. Will try.
===
Now, any idea how to get some 'input' into kodi ?
Edit: How could I force kodi to use the magic mote (which I suppose/hope is some touch/mouse interface) ??? Is there a kodi setting ?
xtreme_protector said:
Ok, clear, thanks. Will try.
===
Now, any idea how to get some 'input' into kodi ?
Edit: How could I force kodi to use the magic mote (which I suppose/hope is some touch/mouse interface) ??? Is there a kodi setting ?
Click to expand...
Click to collapse
...
Even with a usb keyboard connected, I cannot get kodi to respond to keys (no crashes though ...
What's going on ? Ideas ?
xtreme_protector said:
Even with a usb keyboard connected, I cannot get kodi to respond to keys (no crashes though ...
What's going on ? Ideas ?
Click to expand...
Click to collapse
please upload the configuration file so that I can test it directly
y=fx said:
please upload the configuration file so that I can test it directly
Click to expand...
Click to collapse
That's not going to be so simple I mean I did not have to modify only the configure script but lots other places. I'll update the whole sheebag; will bet back with the link.