MCPcopy Index your code
hub / github.com/facebook/SoLoader

github.com/facebook/SoLoader @v0.12.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.12.1 ↗ · + Follow
479 symbols 1,140 edges 60 files 96 documented · 20%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

SoLoader

Build CI License Maven Central

SoLoader is a native code loader for Android. It takes care of unpacking your native libraries and recursively loads dependencies on Android API 23 and earlier, since those old OS versions do not support all of that functionality out of box.

Requirements

SoLoader is useful for applications running on Android API 23 and earlier. SoLoader should not be used on Android API 24 and above unless the app is delivered as Exopackage, requires Android Native Library Merging or uses Superpack compression.

Including SoLoader in your apps

You can use prebuilt aars or fetch SoLoader from Maven repository by adding the following to your build.gradle file:

implementation 'com.facebook.soloader:soloader:0.12.1+'

Building from source

To build SoLoader from source you'll need Buck. Once you have Buck installed execute following commands from the project root directory:

  buck fetch //...
  buck build :soloader

The build command generates buck-out/gen/soloader.aar file.

Join our community

Please use our issues page to let us know of any problems. See the CONTRIBUTING file for how to help out.

License

SoLoader is Apache-2.0-licensed.

Extension points exported contracts — how you extend this code

SystemLoadLibraryWrapper (Interface)
@see SoLoader#setSystemLoadLibraryWrapper [12 implementers]
java/com/facebook/soloader/SystemLoadLibraryWrapper.java
NativeLoaderDelegate (Interface)
Interface used to connect chosen loader of native libraries to NativeLoader [6 implementers]
java/com/facebook/soloader/nativeloader/NativeLoaderDelegate.java
RecoverableSoSource (Interface)
(no doc) [15 implementers]
java/com/facebook/soloader/RecoverableSoSource.java
RecoveryStrategy (Interface)
(no doc) [20 implementers]
java/com/facebook/soloader/recovery/RecoveryStrategy.java
ElfByteChannel (Interface)
(no doc) [4 implementers]
java/com/facebook/soloader/ElfByteChannel.java

Core symbols most depended-on inside this repo

e
called by 41
java/com/facebook/soloader/LogUtil.java
get
called by 30
java/com/facebook/soloader/recovery/RecoveryStrategyFactory.java
w
called by 26
java/com/facebook/soloader/LogUtil.java
lock
called by 22
java/com/facebook/soloader/FileLocker.java
d
called by 20
java/com/facebook/soloader/LogUtil.java
toString
called by 19
java/com/facebook/soloader/SoSource.java
size
called by 18
java/com/facebook/soloader/ElfByteChannel.java
getu32
called by 17
java/com/facebook/soloader/MinElf.java

Shape

Method 398
Class 69
Interface 12

Languages

Java100%

Modules by API surface

java/com/facebook/soloader/SoLoader.java52 symbols
java/com/facebook/soloader/UnpackingSoSource.java34 symbols
java/com/facebook/soloader/SysUtil.java32 symbols
java/com/facebook/soloader/NativeDeps.java21 symbols
java/com/facebook/soloader/DirectApkSoSource.java20 symbols
java/com/facebook/soloader/ExtractFromZipSoSource.java19 symbols
java/com/facebook/soloader/NativeDepsUnpacker.java16 symbols
java/com/facebook/soloader/observer/ObserverHolder.java15 symbols
java/com/facebook/soloader/BackupSoSource.java15 symbols
java/com/facebook/soloader/observer/Observer.java13 symbols
java/com/facebook/soloader/MinElf.java13 symbols
java/com/facebook/soloader/DirectSplitSoSource.java13 symbols

For agents

$ claude mcp add SoLoader \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact