B4A Library ProBundle

ProBundle contains all the following libraries:

- ArchiverPlusZip v1.13
Based on the Zip4j library, this library allows to add, extract, update and remove files from a zip archive.
It supports encryption and decryption (standard and AES), Zip64 format and split zip archives. It is compatible with B4J.

- ClassLoader v1.0
This library can dynamically load classes from a separate file (JAR or uninstalled APK) at runtime and verify the file signatures to make sure of its origin and integrity.
You can use the library to create plug-ins, load code encrypted in the assets or download code from a remote server, for example.

- CPUFeatures + source v1.0
This library detects the target device's CPU family and the maximum number of CPU cores.

- DataCollection v1.07
This library wraps the ArrayDeque, BitSet, PriorityQueue, SparseArray, Stack, TreeMap and TreeSet classes. These classes can replace your lists, maps or arrays for specific tasks. A TreeSet, for example, can maintain a sorted list of objects in a more efficient manner than a typical List class. A TreeMap is a map whose entries are sorted by their keys. A SparseArray is also a sorted map, but restricted to integer keys, that is lightning-fast.
This library can serialize to an array of bytes any collection, including Map, List and user defined types. A version for B4J is provided (without the SparseArray).

- F5Steg v1.2
This library implements F5, a secure steganographic algorithm, which embeds data into images. Data are encrypted with a password or, by default, with the application signature (thus any tampering of the APK will prevent from extracting valid data).

- FastIO + source v0.9
This library replaces the Read and Write functions (with their encrypted variant) of the RandomAccessFile library for arrays of bytes. These new functions are a lot faster.

- OverlayWindow + source v1.2
This library allows to create overlay windows and floating buttons. These interactive views can be displayed on top of all other applications.

- PackageUtils v2.1
This library replaces the PackageManager class of the Phone library. It gives plenty of informations on packages (activities, features, permissions, receivers, services, etc.) and can list the features available on the system (camera, gps, wifi, etc.). It allows experts to change the enabled state of components.
An application is provided with the library to show what you can get with it.

- UltimateArchiver v0.91
This library wraps P7Zip, a command line utility that can create archives with the 7z, zip, bzip2, gzip, tar or xz format. It can unpack files with extension 7z, cab, gz, img, iso, jar, rar, tar, zip and a few others.
It supports encryption/decryption and volumes. It is written in C to be as fast as possible.

- UnArchiver7z v1.0
Based on the official source code in C of 7zip, this library allows to extract files from a 7z archive compressed with the Lzma or Lzma2 method. It can unpack an archive directly from the assets.
It does not support decryption.

- UnArchiverRar v1.04
Based on the official source code in C++ of the UnRar.dll, this library allows to extract files from a Rar archive.
It supports decryption, Rar5 format, QuickOpen records and split Rar archives.

Since September 2018, ProBundle is available for free. You can still donate for it if you wish.
To send the money, just click on the Donate button below (the amount to enter is in euros):


CURRENT VERSION : ProBundle 1.22

DOWNLOAD HERE:
 
Last edited:

DonManfred

Expert
Licensed User
Longtime User
Before buying the users can receive the latest updates
Yes, you get a mail if a new version is available and you can download it from the same downloadlocation you get after buying.
 

ilan

Expert
Licensed User
Longtime User
My English is not very good, previously have donated users can get updated.

your second post is less clear for me then your first.
if your question is:

Do i get free Updates for all libs in the Probundle? then the answer is yes.
 

Informatix

Expert
Licensed User
Longtime User
A ProBundle user is worried by the fact that a hacker could know that his code is protected by two of the ProBundle libraries (F5Steg and ArchiverPlusZip) and that this knowledge could lower the level of protection of his app. Here's my answer:
- ArchiverPlusZip uses encryption algorithms that are well-known, and their code is freely available. Knowing their source code is absolutely of no interest for the hacker. Only the password matters. Without the password, he cannot decrypt anything. Changing the code does not help.
- F5Steg, as explained in the first page of this thread, encrypts the data by default with the application signature, BUT I don't use the signature as is or the protection would be equal to none. The signature is modified by the C code in a complex way before being used as a password to encrypt the data hidden in the image. To add another obstacle, the original data are not provided as is to the encryption algorithm. If a hacker decompiles the C code of the .so library, he will see hundreds of interconnected functions and I doubt that he will understand easily what the code does just by looking at it. Myself, I'm unable to identifiy clearly the flow of my own code by looking at a decompiled version of the .so library.
In brief, knowing what library is used to protect your data and where it is called in your app does not lower dramatically the level of protection if you followed the advices in my guide and used my libraries. Decompiling the F5Steg library is also not a major issue because it's a nightmare to understand. Some of you will probably try and see by themselves.
That being said, it's better to hide explicit library references or function names. Suggestions are given in the final pages of the guide.
 

JackKirk

Well-Known Member
Licensed User
Longtime User
I bought ProBundle a couple of weeks ago in an attempt to better understand app hacking issues and possible protection measures.

The Protect My App guide is excellent - heavy going at first but a bit of persistence is very rewarding.

I am exceeding pleased with the package and support.
 

Informatix

Expert
Licensed User
Longtime User
Important note about OverlayWindow:
If your app using OverlayWindow does not last long when you access another app, it's just because the memory is not sufficient on the device to run the current app and the service using OverlayWindow at the same time. That's the case on my current phone. All demo projects of OverlayWindow stop either immediately or after a few seconds when I switch to another app. It's not specific to my lib; I encounter the same problem with any app from the PlayStore that displays an overlay (aka floating or sticky) window.
 
Last edited:

Informatix

Expert
Licensed User
Longtime User
Try to create a foreground service. The OS will treat it as a foreground app.
Excellent idea. It's not perfect as the service is still killed with big apps but it lasts with the other apps as it has a higher priority than the other services.

What I tried:
B4X:
Sub Process_Globals
  Dim Notif As Notification
End Sub

Sub Service_Create
   Notif.Initialize
   Notif.Icon = "icon"
   Notif.SetInfo("Info", "", Main)
   Notif.Sound = False
   Notif.Vibrate = False
   Notif.Notify(1)
   Service.StartForeground(1, Notif)
End Sub
 

Informatix

Expert
Licensed User
Longtime User
New version !!!

After a long and tedious work, I finally managed to interface the P7Zip utility with Java and turned this command line utility into a library (UltimateArchiver) for B4A. The library, written almost entirely in C++, supports most archive formats (7z, rar, zip, iso, tar, gz, cab, etc.), with encryption/decryption and volumes.

I added also UnArchiver7z to ProBundle. It's a small library to uncompress 7z archives (it is a lot smaller than UltimateArchiver, slightly faster and can work directly with the files in the assets folder; you can use it to uncompress the assets of your application after installation).

I renamed ArchiverPlusUnRar to UnArchiverRar and updated the code with the latest changes of WinRar.

I removed Coverflow, that I will release soon for free on this forum, and ErrorDetection, which is now deprecated.

I fixed many bugs affecting the progression returned by ArchiverPlusZip, and added a GetBitmapFromDrawable function to PackageUtils to convert properly the AdaptiveIconDrawable introduced in Android 8.
 

ilan

Expert
Licensed User
Longtime User
I see that I have messages waiting in my mailbox for ProBundle but I'm unable to deal with them as I am currently at the hospital. So please wait for a few days before expecting an answer.

I hope everything is ok
 
Top