Related
{
"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"
}
Official myHUB Web site - http://myhub-web.com/
myHUB is a custom HUB service that comes with Website and end-user application. myHUB is free to use* (see details below) and easy to configure, there is no need to have dedicated Hosting server and maintain it, you will only need any free file hosting servers like DevHost, DropBox and any other for your uploaded files, the rest will do for you myHUB Web.
Introduce you the new generation of myHUB.
What you can do on myHUB Web:
Add, edit, view sections for myHUB
Add, edit, view details to all Sections of myHUB
Monitor Comments for the Posts (currently only available for News type of section)
Add, edit, view myHUB moderators for cooperation with the Team
Features of myHUB application:
CardUI style of the app
Google Navigation drawer with pull to refresh
Push notifications (Using Google Cloud Messanging)
Immediate updates of the data in the app when you adding/removing/editing posts
Provide News (With images, links)
Comments in the News
Open links posted with the News inside the application, no need to open heavy browsers
Provide any Download sections you want (Skins, System MODs, Icons, Keyboards, Kernels)
Automatic installation of zip files (Automatic safe reboot to recovery)
Automatic checking of MD5
How to start using myHUB service:
For a limited time, the registration on myHUB will be moderated with invitation codes only
Fill this form - myHUB Registration
Wait for invitation code
Once you get it, go to the webite http://myhub-web.com/ and register
Follow the Developers F.A.Q on how you need to configure your system for myHUB, make changes
Download latest available myHUB apk from Download on the website
Create your sections and details for them and be happy with result
myHUB has been featured on XDA Developers Portal
XDA:DevDB Information
[APP][DEV][4.1+] - myHUB - Home for your ROM Content, a App for the Android General
Contributors
mikrosmile
Version Information
Status: Stable
Current Stable Version: 1.0.7
Stable Release Date: 2013-07-27
Created 2013-10-14
Last Updated 2013-11-06
WIP
Official myHUB Sharing policy.
myHUB is Free to use for all Sense ROM Developers. (Fully featured, without any limitations) with following conditions
You never change app name, package name, developer name, etc.
You are not allowed to include donated app to your ROM (if you purchased it, it doesn't mean you are allowed to include it. The donation is from users, I don't ask anything from you as developer of the ROM )
You never change app icon
You need to fill form for all ROMs you have (Multi device for example) for Each Phone.
You never upload apk, any part of apk to Play Market.
You never ask for Donation pop-up dialog in the app.
You never change any String in the apk
You are to provide credits to this thread
To summarize there is one major rule - You are not allowed to add any changes, decompile, recompile apk by yourself.
If any of the following terms will not be followed, you will be banned to use myHUB for all your ROMs (you will have to remove myHUB from all your ROMs within 24 hours and there is no way to get permission back)
Your steps with Form and everything.
Download apk, configure it on your server or File hosting
Make it working, test everything by your own, not public release
When you are confident in using myHUB, want to release update/new ROM, fill Official Form.
After that your ROM will appear on the list who uses myHUB
Configuration guide you can find here on 4th post or click here
Official myHUB Form is located here
ROMs including myHUB:
HTC One
Elegancia™ ROM
RAYGLOBE ROM
42ONE ROM - The Aftermath
HTC One S
CharmanDroid ROM
HTC Sensation
KING SENSE ROM
HTC First
[MYST_UL] JmzMystJBSense 4.1.2 Sense 4+
HTC Pico (Explorer)
[Rom][ICS][4.0.3][Revolution Sense 5
HTC Desire HD
SVHD ROM
HTC Desire S
SVHD ROM
HTC Incredible S
SVHD ROM
HOW TO and ERRORS
To avoid any errors in app make sure all your links are working through WEB. Images, zip or apk files are downloadable.
If news link cannot be opened, make sure you have "/" symbol at the end of the link. Example - http://yoursite.com/somenews/
For name of sections try to use English in most cases. Section name represents download path for files you have and Recovery does not recognize some languages
Automatic installation of zip files requires reboot file in system/bin/
If Automatic reboot doesnt work, please make sure your SuperSU works. It always requests access and without access wont reboot
WIP
Downloads and Changelog
Download myHUB
(For full function of the app, it requires Configuration file)
You need to put apk file to /data/app directory
By downloading myHUB you are agree with the above terms
myHUB V1.0.7
Google Play Link
Changelog:
myHUB 1.0.7
Fixes for myHUB OTA issue
Updated layout
myHUB 1.0.6
Hot fixes
myHUB 1.0.5
Updated layout in myHUB, myHUB Files
ROM Devs - added custom download path
Fixed myHUB Files for some ROMs
Maybe something more i dont remember
myHUB 1.0.4
Fixed Kernel MD5 error
Fixed Automatic installation of OTA Updates
Added Remove update file in options after finish Downloading OTA updates
Added Automatic update of OTA when open myHUB OTA (Same option in Settings)
myHUB 1.0.3
Fixed MD5 error for OTA updates
myHUB 1.0.2
Hopefully fixed error for Sense Lite ROMs
Handled all Errors if configuration file is not present
myHUB 1.0.1
Fixed donation link
myHUB 1.0.0
Initial release
WIP
myHUB Configuration Guide. How to set-up myHUB
For myHUB you don't need any specific Server settings or even Hosting server at all. You can use any file-hosting as DropBox, Google Drive, DevHost etc. But the only problem is you need to find direct URL to the files (xml file, apk file etc) see below how.
By using this Guide and setting up myHUB in your ROM, you are agree with above terms
STEP 1. CONFIGURATION FILE, “MYHUB.TXT”.
All you need to get working the app is one txt file in your System folder. Create or download example file “myHUB.txt”
Fields in the file:
HTML:
main=http://mikrosense.com/sensehub/sections.xml
rom_upd=http://mikrosense.com/sensehub/update.xml
rom_name=DarkSense
rom_v=1.3.5
rom_dev=Jonny & mikrosmile
main – the link to the xml file on server which represents the Main menu in the app (See step 2);
rom_upd – the link to the xml file on server, which provides OTA update of your ROM (See step 4);
rom_name – Enter your ROM name;
rom_v – Enter the current version of your ROM;
rom_dev – Enter your name
You can setup either full working server or any File hosting (DropBox, Google Drive).
In case of using DropBox or Google Drive, you need to find the full link to the file first and insert it. For example, you upload a file to DropBox, start downloading it and in Downloads page (e.g. Chrome Browser), you will see full, direct link to the file. That one you need to use in configuration file.
STEP 2. CONFIGURATION FILE ON SERVER (MAIN MENU IN APP)
The file from step 1 under “main”;
You can create your own or download example “sections.xml”
The fields in the file:
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<item headline = "News">
<text>Latest news about ROM Development</text>
<section>news</section>
<image-url>http://mikrosense.com/sensehub/ic_news3.png</image-url>
<file_ext>apk</file_ext>
<url>http://mikrosense.com/sensehub/news.xml</url>
<details1></details1>
<details2></details2>
<date></date>
</item>
<item headline = "Skins">
<section>mods</section>
<dl_path>Skins</dl_path>
<text>Download amazing Skins for your Device</text>
<image-url>http://mikrosense.com/sensehub/ic_skins.png</image-url>
<file_ext>apk</file_ext>
<url>http://mikrosense.com/sensehub/skins.xml</url>
<details1></details1>
<details2></details2>
<date></date>
</item>
<item headline = "Kernels">
<section>kernels</section>
<dl_path>Kernels</dl_path>
<text>Simply download and install latest Kernels just from the app</text>
<image-url>http://mikrosense.com/sensehub/ic_kernels.png</image-url>
<file_ext>apk</file_ext>
<url>http://mikrosense.com/sensehub/kernels.xml</url>
<details1></details1>
<details2></details2>
<date></date>
</item>
</body>
The sections starts with <item> and ends with </item>. Within this tags you will identify everything you need to get working.
<item headline = “News”> - Represents name of the Section. You can name it as you want
<section></section> - this is represents Type of the section. This is compulsory field to identify how the app will know what content you want to provide. For news, it will use special made Layout to present them in a special text only way, the same as kernels. For other things apart from News and Kernels use tag mods, which can be anything you want, Skins, Icons, System MODs, etc.
<dl_path></dl_path> - Now you can set your own Download path. Note that you can use only English letters as Recovery does not recognize another languages
<image-url></image-url> - this is link to Section icon in the Main menu
<file_ext></file_ext> - Enter the file extension you want to provide.
<url></url> - This is the link to Individual Sections which you need to configure as well (See step 3);
Available section types:
news
mods
kernels
Available types:
apk
zip
STEP 3. CONFIGURATION FILE FOR NEWS, MODS, KERNELS, ETC
Here we will create Individual sections files for all Sections in your Main menu.
Let’s start from News type; You can create or download example file “news.xml”
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<item headline = "Welcome!">
<text></text>
<news_link>http://forum.xda-developers.com/showthread.php?t=2230067</news_link>
<date>03.06.2013</date>
</item>
<item headline = "Another News">
<text>Your text for another news</text>
<news_link></news_link>
<date>06.03.2013</date>
</item>
</body>
<item headline = “Welcome!”> - This is Headline of your News
<text></text> - Here you can enter any text on any language you want to. It also support multi-line texting. Just type as you are comfortable.
<news_link></news_link> - If your news does not contain enough information or you want the users to open a page in web, you can enter it, and the app itself will open it in the myHUB Web application.
<date></date> - This is the date of posting News
MODs type
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<item headline = "Blue+Orange Skin">
<text>Made by 12Reza12</text>
<image-url>http://mikrosense.com/sensehub/skin.png</image-url>
<file_ext>apk</file_ext>
<url>http://mikrosense.com/sensehub/Serene.apk</url>
<md5>d209ecdb2bacc7ac4aef806568236a67</md5>
</item>
<item headline = "Serene Skin">
<text>HTC Skin from HTC Hub</text>
<image-url></image-url>
<file_ext>apk</file_ext>
<md5></md5>
</item>
</body>
<item headline = “Name”> - This represents Name of the File.
<text></text> - This is another text field, you can enter anything you want. Size, Version, etc;
<image-url><image-url> - The image preview for the Mod, Skin, Icon, etc;
<file_ext></file_ext> - File extension you want to provide.
<md5></md5> - MD5 file sum. Needs to compare MD5 after finish of downloading file
Available types:
apk
zip
Kernels type;
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<item headline = "Sultan Kernel">
<file_ext>zip</file_ext>
<url>http://mikrosense.com/store/kernels/kernel.zip</url>
<details1></details1>
<date></date>
<md5>8e92b519b5211d5769e3abe0719cf686</md5>
</item>
</body>
<item headline = “Name”> - Kernel name
<file_ext></file_ext> - File extension you want to provide
<url></url> - The direct link to the file on your Server or any File storage
<details1></details1> - Details of your Kernel. Supports multi-line
<date></date> - Date of upload the Item
<md5></md5> - MD5 file sum
STEP 4. CONFIGURATION FILE FOR OTA
You can create your own or download example file – “update.xml”
Field in the file:
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<item headline = "1.3.6">
<text>Here will be your Changelog of the ROM</text>
<url></url>
<md5></md5>
</item>
</body>
<item headline = “X.X.X”> - the version of your New ROM, this version should be higher than the one in myHUB.txt file. Therefore, it will compare these two versions. All the time you update your rom, do not forget to update myHUB.txt as well.
<text></text> - Here you can enter your changelog;
<url></url> - The direct link to the file on your Server or File storage;
<md5></md5> - MD5 file sum
Thank you very much ! Great creator !:good:
My screenshot:
mikrosmile said:
Downloads and Changelog
Download myHUB
(For full function of the app, it requires Configuration file)
myHUB V1.0.1
Changelog:
myHUB 1.0.1
Fixed donation link
myHUB 1.0.0
Initial release
Click to expand...
Click to collapse
I found the error:
1. Open the news, can`t click on the jump to Web pages
2. Open Mods hint: no data
3. Kernel select download, prompt: file has been successfully removed
4. Open about ROM, "MyHUB" has stopped running
5. myHUB OTA Unable to open, open display:"MyHUB" has stopped running
kinghunki said:
I found the error:
1. Open the news, can`t click on the jump to Web pages
2. Open Mods hint: no data
3. Kernel select download, prompt: file has been successfully removed
4. Open about ROM, "MyHUB" has stopped running
5. myHUB OTA Unable to open, open display:"MyHUB" has stopped running
Click to expand...
Click to collapse
In configuration guide there are samples which I use now , make sure you follow everything as in the guide .
In few hours I will make checking of all config fields and it will prompt what you don't have
Sent from my Galaxy Nexus using Tapatalk 2
kinghunki said:
I found the error:
1. Open the news, can`t click on the jump to Web pages
2. Open Mods hint: no data
3. Kernel select download, prompt: file has been successfully removed
4. Open about ROM, "MyHUB" has stopped running
5. myHUB OTA Unable to open, open display:"MyHUB" has stopped running
Click to expand...
Click to collapse
send me your main.xml file for sections pls
mikrosmile said:
send me your main.xml file for sections pls
Click to expand...
Click to collapse
File has been sent to your Gmail!
Its very good to see this
But Sharing Policy... :|
We Cant Change anything :\
mygamers said:
Its very good to see this
But Sharing Policy... :|
We Cant Change anything :\
Click to expand...
Click to collapse
This features I give everyone without anything in return .. An as in respect I ask to not change anything that made by me
. that's all .. This could appear on a particular ROM for example , but now you have that is just great and powerful )
Sent from my Galaxy Nexus using Tapatalk 2
mikrosmile said:
This features I give everyone without anything in return .. An as in respect I ask to not change anything that made by me
. that's all .. This could appear on a particular ROM for example , but now you have that is just great and powerful )
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
I understand you
But I think Its Better you think About this
I think most of devs wants to do this
Permission to change app name And App Icon
mygamers said:
I understand you
But I think Its Better you think About this
I think most of devs wants to do this
Permission to change app name And App Icon
Click to expand...
Click to collapse
But you don't change any other app u use in your ROM or phone .. So this is just another app as many
Sent from my Galaxy Nexus using Tapatalk 2
I agree with mikrosmile's sharing policy!
kinghunki said:
I agree with mikrosmile's sharing policy!
Click to expand...
Click to collapse
thx.
I found errors.. your server is broken.. most of links are not opened through web.. so check them, than it should work or use DropBox
kinghunki said:
I found the error:
1. Open the news, can`t click on the jump to Web pages
2. Open Mods hint: no data
3. Kernel select download, prompt: file has been successfully removed
4. Open about ROM, "MyHUB" has stopped running
5. myHUB OTA Unable to open, open display:"MyHUB" has stopped running
Click to expand...
Click to collapse
for news - add - / at the end of link. for example http://yoursite.com/
All the problems have been solved, thanks mikrosmile!
myHUB 1.0.2
Hopefully fixed error for Sense Lite ROMs
Handled all Errors if configuration file is not present
mikrosmile said:
myHUB 1.0.2
Hopefully fixed error for Sense Lite ROMs
Handled all Errors if configuration file is not present
Click to expand...
Click to collapse
THX!
myHUB 1.0.3
Fixed MD5 error for OTA updates
1. Download Settings Files.zip
2. Decompile your Settings.apk
3. Extract custombanner.xml of Settings Files.zip and place it in res/layout in decompiled Settings.apk
4. Open /res/xml/device_info_settings.xml
You'll see several <Preference android:title tags
5.Add this just a line above the first Preference tag:
Code:
<PreferenceCategory android:layout="@layout/custombanner" android:title="" />
6. Save the file and exit
7. Now make a .png banner for your ROM or find one on the internet. It has to be a .png
Resize your banner to 480x300 and rename it to custombanner.png
8. Place the custombanner.png in res/drawable
9. Recompile Settings.apk and Replace the settings.apk in your ROM
10. Enjoy :good:
Reserved for Screenshots
Screenshots
Hi ...... Can you add theme option in settings ?????
nathanjp said:
1. Download Settings Files.zip
2. Decompile your Settings.apk
3. Extract custombanner.xml of Settings Files.zip and place it in res/layout in decompiled Settings.apk
4. Open /res/xml/device_info_settings.xml
You'll see several <Preference android:title tags
5.Add this just a line above the first Preference tag:
Code:
Code:
<PreferenceCategory android:layout="@layout/myawesomerom" android:title="" />
6. Save the file and exit
7. Now make a .png banner for your ROM or find one on the internet. It has to be a .png
Resize your banner to 480x300 and rename it to custombanner.png
8. Place the custombanner.png in res/drawable
9. Recompile Settings.apk and Replace the settings.apk in your ROM
10. Enjoy :good:
Click to expand...
Click to collapse
Thanks bro... it works on my Samsung Galaxy Mega GT-I9152, but I Think there's only one mistake with your guide bro... in step number 5 :
Code:
<PreferenceCategory android:layout="@layout/myawesomerom" android:title="" />
it should be
Code:
<PreferenceCategory android:layout="@layout/custombanner" android:title="" />
Please correct me if I was wrong...Thanks...
sitifire said:
Thanks bro... it works on my Samsung Galaxy Mega GT-I9152, but I Think there's only one mistake with your guide bro... in step number 5 :
Code:
<PreferenceCategory android:layout="@layout/myawesomerom" android:title="" />
it should be
Code:
<PreferenceCategory android:layout="@layout/custombanner" android:title="" />
Please correct me if I was wrong...Thanks...
Click to expand...
Click to collapse
Thanks for pointing that when i war writing the xml file i thought of using myawesomerom but instead i used custombanner. Thats why i made a mistake will correct it immediately. Thanks for letting me know
It works perfect!!!!!
G.M.L._V2_IcSmoothness
http://pasakalis.blogspot.gr
Ended up in error in recompiling Any help?
Works perfect on sprint Galaxy Note 3 running stock deodexed lollipop rom. Thanks for this. It's awesome!!
great..thanks..I just try
Hi i have tested a lot of OTA apps and configs and they are very annoying until i stop thinking for a moment and I find a solution for having true OTAS updates and not depending from other users just like Nexus Devices OTAS.
Ok we started:
First of all we need to download Android Bundle with contains SDK and Eclipse
Here it is:
http://developer.android.com/sdk/index.html?hl=sk#download
After it is download and installed.
You are going to download my fixed source for supporting from Android 4.1.2 to 4.4.2.
https://github.com/werty100/OpenDelta
And Click on:
{
"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"
}
Them open Eclipse...
Go to file/Import:
Next and locate were is the download source
Then Finish...
Wait until it is import....
Go to res folder, values and open config.xml:
Here are the important values for making work your OTA in your phone.
Code:
<!-- Property to read for ROM version -->
<string name="property_version">ro.delta.version</string>
<!-- Property to read for device identifier -->
<string name="property_device">ro.delta.device</string>
This should be put in build.prop:
Ex:
ro.delta.version=1.0.2
ro.delta.device=i9000
You can modificated all values but you should modificate this ones:
Code:
<!-- URL base to find .delta files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
<string name="url_base_delta">https://delta.omnirom.org/nightlies/%s/</string>
<!-- URL base to find .update and .sign files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
<string name="url_base_update">http://delta.omnirom.org/nightlies/%s/</string>
<!-- URL base to find the full zip files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
<string name="url_base_full">http://dl.omnirom.org/%s/</string>
Indicates where to find the ZIP for your phone...
Also you can modificate all UI and values....
After the essentials modifications you will need to compile APK:
Go here and click on selected item..
You will need to create your own KeyStores
Rellenate also this:
https://dl.dropboxusercontent.com/u/26870831/rellenate.png
Them just put destination and click finish:
After all of this you have to modificate the Settings.apk of your rom:
Decompile with the script/tool you like more and go to:
In res/values:
String.xml
Add this:
Code:
<string name="system_update_settings_list_item_title">System updates</string>
<string name="system_update_settings_list_item_summary" />
Paste it near baseband_version string kernel_version string etc...
Then go to public and paste this near device_info_settings:
Code:
<public type="string" name="system_update_settings_list_item_title" id="0x7f0c06d7" />
<public type="string" name="system_update_settings_list_item_summary" id="0x7f0c06d8" />
Then go to xml/device_info_settings.xml:
And copy this in the firs lines after:
Code:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:title="@string/about_settings"
xmlns:android="http://schemas.android.com/apk/res/android">
Paste this:
Code:
<PreferenceScreen android:title="@string/system_update_settings_list_item_title" android:key="system_update_settings" android:summary="@string/system_update_settings_list_item_summary">
<intent android:action="android.settings.SYSTEM_UPDATE_SETTINGS" />
</PreferenceScreen>
<PreferenceScreen android:title="@string/additional_system_update_settings_list_item_title" android:key="additional_system_update_settings">
<intent android:targetPackage="@string/additional_system_update" android:action="android.intent.action.MAIN" android:targetClass="@string/additional_system_update_menu" />
</PreferenceScreen>
After Compiling Settings.apk you will have full OTAS
Tomorrow More
Today more
Publish on HTCMania haha
Update New settings for OTA
Just a quick question:
Code:
[B] <!-- URL base to find .delta files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
<string name="url_base_delta">https://delta.omnirom.org/nightlies/%s/</string>
<!-- URL base to find .update and .sign files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
<string name="url_base_update"http://delta.omnirom.org/nightlies/%s/</string>[/B]
<!-- URL base to find the full zip files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
<string name="url_base_full">http://dl.omnirom.org/%s/</string>
If we want to configure it to our directory, what should we inclue on .delta files & .update and .sing files?
With this OTA guide will I have to boot into recovery to flash a OTA?
You can't use this for any other ROM because we don't know what we should had on .delta & .update & .sign files
Howdy! Some general stuff:
You should credit original developer of OpenDelta (that's Chainfire @ OmniROM)
Proper way to make own, patched version is Pulling the original repository (easiest way is using "Pull" button on GitHub there: https://github.com/omnirom/android_packages_apps_OpenDelta) and then patching it - this way you preserve all the commits history (and credits to original authors)
_MarcoMarinho_ said:
You can't use this for any other ROM because we don't know what we should had on .delta & .update & .sign files
Click to expand...
Click to collapse
There we got with an example:
https://delta.omnirom.org/nightlies/i9300/omni-4.4.3-20140605-i9300-NIGHTLY.sign
https://delta.omnirom.org/nightlies/i9300/omni-4.4.3-20140605-i9300-NIGHTLY.update
https://delta.omnirom.org/nightlies/i9300/omni-4.4.3-20140605-i9300-NIGHTLY.delta
.delta file is JSON
.sign is binary signature
.delta is binary delta data
...and
GUESS WHAT! There's an opensource stuff to generate ALL of the above.
Completely! Automagically!
https://github.com/omnirom/android_packages_apps_OpenDelta/tree/android-4.4/server/
Rebellos said:
Howdy! Some general stuff:
You should credit original developer of OpenDelta (that's Chainfire @ OmniROM)
Proper way to make own, patched version is Pulling the original repository (easiest way is using "Pull" button on GitHub there: https://github.com/omnirom/android_packages_apps_OpenDelta) and then patching it - this way you preserve all the commits history (and credits to original authors)
There we got with an example:
https://delta.omnirom.org/nightlies/i9300/omni-4.4.3-20140605-i9300-NIGHTLY.sign
https://delta.omnirom.org/nightlies/i9300/omni-4.4.3-20140605-i9300-NIGHTLY.update
https://delta.omnirom.org/nightlies/i9300/omni-4.4.3-20140605-i9300-NIGHTLY.delta
.delta file is JSON
.sign is binary signature
.delta is binary delta data
...and
GUESS WHAT! There's an opensource stuff to generate ALL of the above.
Completely! Automagically!
https://github.com/omnirom/android_packages_apps_OpenDelta/tree/android-4.4/server/
Click to expand...
Click to collapse
Thanks so much :highfive:
So I just need to modify few things, generate ALL stuff and then upload it to my server right?
Yup. Looks like. I'm not really experienced with OpenDelta but knowing Chainfire it's all easy to work with.
Post for subscription
when it comes to these stuff (git with coding and xml and OH MY GOD!) i am a total noob.
i still don't know how do i generate these files. I understand .zip is the whole ROM, but i have no idea how i can make .update .sign and .delta and what should i put in them and all.
hehe, to me, all i see is three beautiful files here https://github.com/omnirom/android_packages_apps_OpenDelta/tree/android-4.4/server/ which i know nothing about how i can use them to get the files.
i guess i'll wait for the "tomorrow more"
@_MarcoMarinho_ you can find on the github readme how to generate the Delta files.
Server-side
To create the delta files on the server, you need several things, some of which can be found in the server directory. The main thing is the opendelta.sh script. It contains a configuration section which you can edit with the correct file locations on your own system. Quite likely you will need to create a wrapper script that pulls in your previous release and your current release, and pushes out the created delta files.
The script depends on xdelta3, zipadjust and minsignapk.
For the builds on your server, make a copy of the jni directory - do not compile inside jni because you may mess up the build of libopendelta.
xdelta3 can be built in (the copy of) jni/xdelta3-3.0.7 by calling ./configure and make.
zipadjust can be built in (the copy of) jni by calling:
gcc -o zipadjust zipadjust.c zipadjust_run.c -lz
dedelta (not used by the script, but maybe helpful when debugging) can be built in (the copy of) jni by calling:
gcc -o dedelta xdelta3-3.0.7/xdelta3.c delta.c delta_run.c
minsignapk Java source is in the server directory, as well as a prebuilt minsignapk.jar file that should work on most systems.
Click to expand...
Click to collapse
If you are however to lazy to set up all that stuff check my script on github you can find here:
https://github.com/Myself5/CarbonDelta_server_software/
(I used it for my unofficials and when we tested CarbonDelta (which is based on OpenDelta))
Check the readme on how to install it and use it.
Myself5 said:
@_MarcoMarinho_ you can find on the github readme how to generate the Delta files.
If you are however to lazy to set up all that stuff check my script on github you can find here:
https://github.com/Myself5/CarbonDelta_server_software/
(I used it for my unofficials and when we tested CarbonDelta (which is based on OpenDelta))
Check the readme on how to install it and use it.
Click to expand...
Click to collapse
Thank, thanks so much, now I understand
-----
When I should put your repo? inside pakcages/apps?
_MarcoMarinho_ said:
Thank, thanks so much, now I understand
-----
When I should put your repo? inside pakcages/apps?
Click to expand...
Click to collapse
In any folder where you want it. It must not be inside your Roms Sourcecode. To create the delta update and sign files just follow the readme
Code:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Output some debug strings -->
<item type="bool" name="debug_output">false</item>
<!-- Property to read for ROM version -->
<string name="property_version">ro.euclidean.version</string>
<!-- Property to read for device identifier -->
<string name="property_device">ro.euclidean.device</string>
<!-- %s is expanded to property_version value. .zip, .delta, .update, .sign extensions added when needed -->
<string name="filename_base">euclidean_%s</string>
<!-- Path deltas are stored, relative to sdcard root -->
<string name="path_base">EuclideanDelta</string>
<!-- URL base to find .delta files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
<string name="url_base_delta">http://euclideanrom.grn.cc/downloads/%s/delta/</string>
<!-- URL base to find .update and .sign files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
<string name="url_base_update">http://euclideanrom.grn.cc/downloads/%s/delta/</string>
<!-- URL base to find the full zip files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
<string name="url_base_full">http://euclideanrom.grn.cc/downloads/%s/</string>
This is my setup.
I can't figure it out why I don't receive the updates
@werty100 will this work for lollipop?
gcng said:
@werty100 will this work for lollipop?
Click to expand...
Click to collapse
You need the new app source code.
Hey guys. I want add support OTA in my builds. I'm fully understand what need to be changed on client side and how generate *.delta and *.update files, but what i need for server side?
Just place files at some path, and somehow mystical way the application will find it.. or need some json script, which protocol need to use, how app retrieve list of files/information from server...
Thanks in advance.
ElArchibald said:
Hey guys. I want add support OTA in my builds. I'm fully understand what need to be changed on client side and how generate *.delta and *.update files, but what i need for server side?
Just place files at some path, and somehow mystical way the application will find it.. or need some json script, which protocol need to use, how app retrieve list of files/information from server...
Thanks in advance.
Click to expand...
Click to collapse
just add them to web server.
you may have noticed this post at the modding thread (and maybe the Q&A thread), the reason im double posting is so others could see this one visibly, while the other is just a substitute to get the 10 post requirement (sorry to add the unnecessary spam / post)
requirements:
Rooted phone
file manager
some patience
and a healthy working mind
and twrp (in case of bootloop)
now anything you do below here is considered "DIY" if your device gets f***ed dont blame me
1. open your file manager
go to : /system/etc/permissions
make 2 new files
android.hardware.vulkan.level.xml
android.hardware.vulkan.version.xml
2.
open android.hardware.vulkan.level.xml
add this :
<permissions>
<feature name="android.hardware.vulkan.level" version="0" />
</permissions>
save & close
open android.hardware.vulkan.version.xml
Add this:
<permissions>
<feature name="android.hardware.vulkan.version" version="4194307" />
</permissions>
save & exit
3. Now the fun bit
go to /system/vendor
open lib/egl
copy libGLES_mali.so & paste it to lib/hw
rename libGLES_mali.so at the lib/hw folder to vulkan.mt6757.so
next
open lib64/egl
copy libGLES_mali.so & paste it to lib64/hw
rename libGLES_mali.so at the lib/hw folder to vulkan.mt6757.so
4. reboot and hope it doesnt bootloop
tadah, you're ready to game hard! , open aida64 and the devices tab, you will see "Vulkan Device - Mali-T880"
if you think this helps, do press the thank button
Hi. How can I root this Phone?
Sir,thanks for his post is very interesting for me..I now working on some port Samsung that have many files Vulcan including the files that you takes.. thianproces is possible to do trough the super.. and change the file names 7870 for the names mentioned for you?!and do it manually? Thanks for is for his support..are the same file including on firmware Samsung doc 7870 y 7884b
May be will can working it? What do you think
Hello, recently I looked into LG backup and restore application using static analysis.
Note: this is based on version lg bnr 8.0.26 from 2020-02-13, tested with 7.0.20 from 2008-12-31
Here is the extract tool:
https://github.com/Mysak0CZ/LBFtool
And here is the technical part (you don't need to read this, if you just want to extract your data):
The file contains 2 headers (one of them is referred to as "new")
These are XML documents encrypted using AES/ECB/PKCS5Padding + SHA256 and null IV with static password
Code:
cd562f61-5399-3978-ac76-7c54b0508010
And they look like this:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<BackUp>
<Common>
<Name>LGBackup_200217_1</Name> <!-- Name of the backup file -->
<Id>Randomly generated UUID</Id> <!-- Id of the backup file -->
<IsNew>True</IsNew> <!-- IsNew is same in new and old header -->
<Version>1.00</Version>
<Attr Name="product_model">LM-X525</Attr>
<Attr Name="os_version">9</Attr>
<!-- And other attributes including google email -->
</Common>
<BackupItem Category="settings_DB" StartOffset="59392" DataSize="136626" />
<BackupItem Category="MEDIA_DB" StartOffset="901169" DataSize="78393344" FileName="external.db" />
<!-- Other backuped items -->
</BackUp>
The "new" header has more information than original header, but same structure.
The attribute "IsNew" signals the presence of the new header. (and is True in both files)
All numbers inside file are in Big-endian.
And this is the structure of the file (decimal position):
Code:
0: Unknown - 0x00 for me
1: Int32 - size of the new header
5: Int64 - offset to the new header (usually 13)
13 ... EOF-33: data
EOF-33: 20 bytes - SHA1 hash of the password (if present, otherwise still data)
EOF-13: Int64 - offset to the (old) header
EOF-5: Int32 - size of the (old) header
EOF-1: Bool - Lock byte - the file is (0x01) or isn't (0x00) protected by password
The password is only checked during import, not used to encrypt data (so to remove password, just set the last byte to 0)
Every "BackupItem" entry has a "Category".
Special case is Category="APPLICATION" with this structure:
Code:
<BackupItem Category="APPLICATION">
<APPLICATION Name="com.lge.ime" StartOffset="19221586" DataSize="2385983" Package="com.lge.ime">
<Attr Name="com.lge.ime">com.lge.ime</Attr>
</APPLICATION>
<APPLICATION Name="org.exmple.app" StartOffset="1429652009" DataSize="3420160" FileName="org.exmple.app.tar" Package="org.exmple.app">
<Attr Name="org.exmple.app">org.exmple.app</Attr>
</APPLICATION>
<!-- ... -->
</BackupItem>
All applications are tar files that contain 2 folders:
app - contains the apk file
data - application's internal data
All other items have:
StartOffset - Offset inside file
DataSize - Self explanatory
FileName - Not all have this, but most do; it is the original name of the backuped file.
The files are not compressed nor encrypted.
Footnote: This is my first post on XDA, so sorry for any mistakes I made (including my english) and feel free to correct me/give me advice.
Mysak0CZ said:
Hello, recently I looked into LG backup and restore application using static analysis.
Note: this is based on version lg bnr 8.0.26 from 2020-02-13, tested with 7.0.20 from 2008-12-31
Here is the extract tool:
And here is the technical part (you don't need to read this, if you just want to extract your data):
The file contains 2 headers (one of them is referred to as "new")
These are XML documents encrypted using AES/ECB/PKCS5Padding + SHA256 and null IV with static password
And they look like this:
The "new" header has more information than original header, but same structure.
The attribute "IsNew" signals the presence of the new header. (and is True in both files)
All numbers inside file are in Big-endian.
And this is the structure of the file (decimal position):
The password is only checked during import, not used to encrypt data (so to remove password, just set the last byte to 0)
Every "BackupItem" entry has a "Category".
Special case is Category="APPLICATION" with this structure:
All applications are tar files that contain 2 folders:
app - contains the apk file
data - application's internal data
All other items have:
StartOffset - Offset inside file
DataSize - Self explanatory
FileName - Not all have this, but most do; it is the original name of the backuped file.
The files are not compressed nor encrypted.
Footnote: This is my first post on XDA, so sorry for any mistakes I made (including my english) and feel free to correct me/give me advice.
Click to expand...
Click to collapse
Nice job dude! just a the quick recommendation: I would suggest that you put your code on gitlab or GitHub so it will become easier for others to contribute
Sent from my OnePlus 6T using XDA Labs
Hi. I'm trying to use this tool but I don't know how to use it. I followed the instructions and downloaded Python. but none of the other steps are working for me. I have my backup on my PC and am trying to extract my files into normal formats as I wish to move away from the LG platform. Thank you.
---------- Post added at 07:20 AM ---------- Previous post was at 06:57 AM ----------
Nevermind, I found a work around.
For anyone else in the future wondering: If you select backup with the app on the phone and backup to the internal memory, it will create .pdf files of all text/images in internal storage>>Quickmemo+. This doesn't help to retrieve the audio or video recordings, but at least that way you can retrieve your text files/images.
Tried script on old backup, failed with error.
Mysak0CZ said:
Hello, recently I looked into LG backup and restore application using static analysis.
Note: this is based on version lg bnr 8.0.26 from 2020-02-13, tested with 7.0.20 from 2008-12-31
Here is the extract tool:
And here is the technical part (you don't need to read this, if you just want to extract your data):
The file contains 2 headers (one of them is referred to as "new")
These are XML documents encrypted using AES/ECB/PKCS5Padding + SHA256 and null IV with static password
Code:
cd562f61-5399-3978-ac76-7c54b0508010
...
[/CODE]
All applications are tar files that contain 2 folders:
app - contains the apk file
data - application's internal data
All other items have:
StartOffset - Offset inside file
DataSize - Self explanatory
FileName - Not all have this, but most do; it is the original name of the backuped file.
The files are not compressed nor encrypted.
Footnote: This is my first post on XDA, so sorry for any mistakes I made (including my english) and feel free to correct me/give me advice.
Click to expand...
Click to collapse
My first post as well. Thanks for the script. I ran it on an old backup I was hoping to extract contacts from. See excerpt with error below.
C:\Temp\LG G4\Backup>python extract.py LGBackup_190218.lbf
[+] Backup size: 597864605
Parsing...
Reading header
[*] Header start offset: 597792768
[*] Header length: 71824
[+] Header read OK
Reading header (new)
[*] Header start offset: 7021235167904623918
Traceback (most recent call last):
File "extract.py", line 125, in <module>
root = readHeader(True)
File "extract.py", line 99, in readHeader
size = getBackupInfoSize(isNew)
File "extract.py", line 88, in getBackupInfoSize
raise Exception("Invalid header length.")
Exception: Invalid header length.
C:\Temp\LG G4\Backup>
Click to expand...
Click to collapse
I'm a complete newbie with Python, haven't done any coding in over a decade. Where do I go from here?
Ninja_Toad said:
My first post as well. Thanks for the script. I ran it on an old backup I was hoping to extract contacts from. See excerpt with error below.
I'm a complete newbie with Python, haven't done any coding in over a decade. Where do I go from here?
Click to expand...
Click to collapse
Hi! Your backup seem to be at least partially corrupted. (The new header position seems to start at 7021235167904623918, however the file is only 597864605 bytes long). Fortunatly there are two headers in the backup and the old one seems to be ok (You got "[+] Header read OK" for the old header). So you can try ignoring the "new" header.
To ignore the faulty header just set the relevant "FORCE_*_HEADER" to True in the script header. In your case just set "FORCE_OLD_HEADER = True".
Also note, that extracting contacts in readable format is beyond this script's current scope. This can however be done manually. After you get your data successfully extracted, look for export/data/contacts_DB file. This is a TAR file in which you need to find file "data/data/user/0/com.android.providers.contacts/databases/contacts2.db". This is the contact database as your phone stores it. To actually extract the contacts, you will need to find a way to convert the database to some other format (I have't looked into how the contacts are stored, you will need to do your own googling)
Files extracted but...
hello guys,
I also managed to extract my files using the hack mentioned above (force old headers to TRUE) since by using the default script i was also getting a similar error as above.
However now all of my files (pictures in particular) are corrupted and i cannot seem to be able to open them using several editors.
Anyone else had the same issue?
Thanks in advance!
serlal said:
hello guys,
I also managed to extract my files using the hack mentioned above (force old headers to TRUE) since by using the default script i was also getting a similar error as above.
However now all of my files (pictures in particular) are corrupted and i cannot seem to be able to open them using several editors.
Anyone else had the same issue?
Thanks in advance!
Click to expand...
Click to collapse
Yes I have exactly same issue as you have. All exported files cannot be read.
Hello @tking2000 and @serlal, this script was written based on versions that are available to me. There are two possibilities of what is happening:
1) The file was badly corruped, however the old header stayed itact. (This is the likely case, if you are trying this tool because your phone refused to restore the backup)
2) The file was made by version that does something differently and the script doesn't account for it.
In the first case there is nothing anyone can do (short of trying some corrupted file recovery software hoping the corruption is only minor)
In the second case, you can try sending me a PM with following information, so I can have a look and confirm whether this is truly the case (and improve the script)
1) The script's output
2a) The <Version> and <Attr Name="settingVersionName"> from the <Common> part of the header
2b) If you aren't concerned about privacy or it is just easier for you: just send the whole header file
3) The version of the com.lge.bnr app (LG Mobile Switch); this is not necessary, but may help me
Feel free to censor anything you are sending with [CENSORED] (like your email or filenames)
I have no experience with python, but I have one of these lbf files and I'm trying to figure out how to make it work and all I get is couldn't get library pycryptodome. How do I get Python 3.8.3 to get this library?
Multipart backups
Hello everyone,
I just finished an update, that should enable the tool to extract backups that have multiple files.
If you received "Exception: Invalid header length." in the past and your backup has multiple files, try the script now; your backups are likely to extract correctly now.
This is the likely case for: @Ninja_Toad @serlal and @tking2000
This was made possible thanks to @cheesyzombie who sent me the data I asked for.
@kamikazkid, You don't need to know Python to use this tool, the easiest way is to enter the commands in quotes on the github page into the console (To open the console Shift+Right click in the folder with backups and choose "Open command window here").
Just:
Download the zip on the github page (Under "Code" button)
Make sure the extract.py and your backup are in the same folder
Follow the usage, skip the 4th step and replace xxxxxx to match your backup name.
I figured it out, it was something with windows 10 and the version of python installation I used. Microsoft garbaging things up as usual, thanks for the help though. Thanks, I recovered my files from my old phone successfully.
I have no experience withc++, but I have one of these lbf files and I'm trying to figure out how to make it work, it is a great this forum
Is there a way to import the _DB files (contacts, messages, call logs etc.) back to a phone?
I asked before:
https://forum.xda-developers.com/lg-g3/general/restore-backup-lbf-lineage-17-t4172483#post83644281
Thank you so much for this! I was able to extract the Messaging data from an LG G8 ThinQ. Does anybody know the easiest way to view that data on my PC?
Hi, you can follow these steps to extract data fron _db files:
1) Send the _db files like contacts_db, messages_db to any android phone
2) Double tap on the file and open it using File Manager (which is by default on Mi phones)
3) The file will now open as a folder. Continue opening the folders until you reach to the last file.
4) The last file is the database file. It won't open directly. Select the file and extract the file.
5) Now transfer the file to computer and you can now view it using SQLite DB Browser if its a contacts file or you can use any VMG reader if its a messages file.
Hope this helps you.
Hi @Mysak0CZ, just follow your instructions on GitHub but when I run the command on Command Prompt, nothing happens. Just like this:
F:\>python -m pip install pycryptodome
F:\>python extract.py LGBackup-201031.lbf
When I enter nothing happened. Kindly help to advise for this.
Thank you
Problem in powershell
Mysak0CZ said:
Hi! Your backup seem to be at least partially corrupted. (The new header position seems to start at 7021235167904623918, however the file is only 597864605 bytes long). Fortunatly there are two headers in the backup and the old one seems to be ok (You got "[+] Header read OK" for the old header). So you can try ignoring the "new" header.
To ignore the faulty header just set the relevant "FORCE_*_HEADER" to True in the script header. In your case just set "FORCE_OLD_HEADER = True".
Also note, that extracting contacts in readable format is beyond this script's current scope. This can however be done manually. After you get your data successfully extracted, look for export/data/contacts_DB file. This is a TAR file in which you need to find file "data/data/user/0/com.android.providers.contacts/databases/contacts2.db". This is the contact database as your phone stores it. To actually extract the contacts, you will need to find a way to convert the database to some other format (I have't looked into how the contacts are stored, you will need to do your own googling)
Click to expand...
Click to collapse
Hi, I am trying to extract via your method but in the power shell in sending the command "python extract.py LGBackup_1x0x07.lbf" it does not execute and brings me back the initial path line. Do you have solutions in this regard? Thanks in advance
Ps. I use Win10
Worked so well. I only needed to recover images and audio recordings after realizing that LG backup tool won't restore on other brand phones.
Thank you!!
Mysak0CZ said:
Hello, recently I looked into LG backup and restore application using static analysis.
Note: this is based on version lg bnr 8.0.26 from 2020-02-13, tested with 7.0.20 from 2008-12-31
Here is the extract tool:
https://github.com/Mysak0CZ/LBFtool
And here is the technical part (you don't need to read this, if you just want to extract your data):
The file contains 2 headers (one of them is referred to as "new")
These are XML documents encrypted using AES/ECB/PKCS5Padding + SHA256 and null IV with static password
Code:
cd562f61-5399-3978-ac76-7c54b0508010
And they look like this:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<BackUp>
<Common>
<Name>LGBackup_200217_1</Name> <!-- Name of the backup file -->
<Id>Randomly generated UUID</Id> <!-- Id of the backup file -->
<IsNew>True</IsNew> <!-- IsNew is same in new and old header -->
<Version>1.00</Version>
<Attr Name="product_model">LM-X525</Attr>
<Attr Name="os_version">9</Attr>
<!-- And other attributes including google email -->
</Common>
<BackupItem Category="settings_DB" StartOffset="59392" DataSize="136626" />
<BackupItem Category="MEDIA_DB" StartOffset="901169" DataSize="78393344" FileName="external.db" />
<!-- Other backuped items -->
</BackUp>
The "new" header has more information than original header, but same structure.
The attribute "IsNew" signals the presence of the new header. (and is True in both files)
All numbers inside file are in Big-endian.
And this is the structure of the file (decimal position):
Code:
0: Unknown - 0x00 for me
1: Int32 - size of the new header
5: Int64 - offset to the new header (usually 13)
13 ... EOF-33: data
EOF-33: 20 bytes - SHA1 hash of the password (if present, otherwise still data)
EOF-13: Int64 - offset to the (old) header
EOF-5: Int32 - size of the (old) header
EOF-1: Bool - Lock byte - the file is (0x01) or isn't (0x00) protected by password
The password is only checked during import, not used to encrypt data (so to remove password, just set the last byte to 0)
Every "BackupItem" entry has a "Category".
Special case is Category="APPLICATION" with this structure:
Code:
<BackupItem Category="APPLICATION">
<APPLICATION Name="com.lge.ime" StartOffset="19221586" DataSize="2385983" Package="com.lge.ime">
<Attr Name="com.lge.ime">com.lge.ime</Attr>
</APPLICATION>
<APPLICATION Name="org.exmple.app" StartOffset="1429652009" DataSize="3420160" FileName="org.exmple.app.tar" Package="org.exmple.app">
<Attr Name="org.exmple.app">org.exmple.app</Attr>
</APPLICATION>
<!-- ... -->
</BackupItem>
All applications are tar files that contain 2 folders:
app - contains the apk file
data - application's internal data
All other items have:
StartOffset - Offset inside file
DataSize - Self explanatory
FileName - Not all have this, but most do; it is the original name of the backuped file.
The files are not compressed nor encrypted.
Footnote: This is my first post on XDA, so sorry for any mistakes I made (including my english) and feel free to correct me/give me advice.
Click to expand...
Click to collapse
ok I am so lost. And here is the technical part (you don't need to read this, if you just want to extract your data):
that statement would make it appear easy. well the link only takes you to the code, there is no tool and nothing with "new" as header. so ive tried deciphering what to do for hours now and i cant figure npthing out. rooted and flashed my lgv20 and did a backup with lg bridge beforehand. trying to restore and phone connects to computer fine but doesnt regster in lg bridge so that is why i need to extract .lbf file. can someone make this easier?
hello..it ended up successful.but there is no jpeg or mp4 file on DCIM folder..how can i restore them?should i do somthing with the script? i don't know pyton