Access network file shares directly from the Android Downloads/Files app
Find a file
Ruslan Tkhakokhov baf3ba19f4 Merge pull request #28 from rthakohov/network-browsing-broadcast
Network browsing via broadcasting
2017-07-27 15:50:37 -07:00
.idea Separate directory loading into steps to avoid blocking samba thread. 2017-07-06 16:17:43 -07:00
app Support network browsing via NetBIOS broadcast 2017-07-27 15:45:06 -07:00
gradle/wrapper Initial commit. 2017-06-19 14:38:40 -07:00
.gitignore Initial commit. 2017-06-19 14:38:40 -07:00
build.gradle Separate directory loading into steps to avoid blocking samba thread. 2017-07-06 16:17:43 -07:00
CONTRIBUTING.md Initial commit. 2017-06-19 14:38:40 -07:00
gradle.properties Initial commit. 2017-06-19 14:38:40 -07:00
gradlew Initial commit. 2017-06-19 14:38:40 -07:00
gradlew.bat Initial commit. 2017-06-19 14:38:40 -07:00
groups Initial commit. 2017-06-19 14:38:40 -07:00
LICENSE Initial commit. 2017-06-19 14:38:40 -07:00
project.config Initial commit. 2017-06-19 14:38:40 -07:00
README.md Update NDK to use unified headers. 2017-07-07 15:23:49 -07:00
sambapatch.diff Stop building for Lollipop. 2017-07-08 18:14:56 -07:00
settings.gradle Initial commit. 2017-06-19 14:38:40 -07:00

Samba Documents Provider

Overview

This is an Android app that extends the built in File Manager to support connecting to SMB file shares.

This app is built on top of Samba 4.5.1.

Setup

Prerequisite

Android SDK and NDK r15b or above are required to build this app. Android Studio is highly recommended.

Build Steps

  1. Download and unarchive Samba 4.5.1 source code.
  2. Change directory to the root of Samba source code.
  3. Create a git repository.
  4. Run git apply <path_to_samba_documents_provider_source>/sambapatch.diff.
  5. Modify configure.sh to change $NDK to point to your NDK folder.
  6. Uncomment corresponding flags in configure.sh to compile for different architecture. Uncomment flags for ARMv7 in addition to 32-bit ARM to compile it for ARMv7.
  7. Run configure.sh to configure Samba project.
  8. Run compile.sh to compile libsmbclient.so.
  9. Run install.sh <path_to_samba_documents_provider_source>/app/src/main/jniLibs/<ABI>.
  10. Change directory to SambaDocumentsProvider source code.
  11. Run mv app/src/main/jniLibs/<ABI>/includes app/src/main/cpp/samba_includes.
  12. Change directory to the root of Samba source code and run make distclean.
  13. Repeat step 6-12 for all desired ABI's.
  14. Make sure to change app's build.gradle to include only ABI's that Samba was built for in previous steps.
  15. Compile SambaDocumentsProvider.

Discussion

Please go to our Google group to discuss any issues.