diff --git a/bpfloader/BpfLoader.cpp b/bpfloader/BpfLoader.cpp
index e173e67..a09af29 100644
--- a/bpfloader/BpfLoader.cpp
+++ b/bpfloader/BpfLoader.cpp
@@ -19,6 +19,7 @@
 #endif
 
 #include <arpa/inet.h>
+#include <dirent.h>
 #include <elf.h>
 #include <error.h>
 #include <fcntl.h>
@@ -38,19 +39,22 @@
 #include <sys/types.h>
 
 #include <android-base/stringprintf.h>
+#include <android-base/strings.h>
 #include <android-base/unique_fd.h>
+#include <libbpf_android.h>
 #include <log/log.h>
-
 #include <netdutils/Misc.h>
 #include <netdutils/Slice.h>
 #include "bpf/BpfUtils.h"
 #include "netdbpf/bpf_shared.h"
 
+using android::base::EndsWith;
 using android::base::unique_fd;
 using android::netdutils::Slice;
+using std::string;
 
-#define BPF_PROG_PATH "/system/etc/bpf"
-#define BPF_PROG_SRC BPF_PROG_PATH "/bpf_kern.o"
+#define BPF_PROG_PATH "/system/etc/bpf/"
+#define BPF_PROG_SRC BPF_PROG_PATH "bpf_kern.o"
 
 #define CLEANANDEXIT(ret, mapPatterns)                    \
     do {                                                  \
@@ -65,7 +69,28 @@
 using android::bpf::BpfMapInfo;
 using android::bpf::BpfProgInfo;
 
+void loadAllElfObjects(void) {
+    DIR* dir;
+    struct dirent* ent;
+
+    if ((dir = opendir(BPF_PROG_PATH)) != NULL) {
+        while ((ent = readdir(dir)) != NULL) {
+            string s = ent->d_name;
+            if (!EndsWith(s, ".o")) continue;
+
+            string progPath = BPF_PROG_PATH + s;
+
+            int ret = android::bpf::loadProg(progPath.c_str());
+            ALOGI("Attempted load object: %s, ret: %s", progPath.c_str(), std::strerror(-ret));
+        }
+        closedir(dir);
+    }
+}
+
 int main() {
+    // Load all ELF objects, create programs and maps, and pin them
+    loadAllElfObjects();
+
     const std::vector<BpfMapInfo> mapPatterns = {
         BpfMapInfo(COOKIE_TAG_MAP, COOKIE_TAG_MAP_PATH),
         BpfMapInfo(UID_COUNTERSET_MAP, UID_COUNTERSET_MAP_PATH),
