[verified] Publish ReelBox source under GPLv3

This commit is contained in:
Hermes committed 2026-11-12 23:41:13 +00:00
commit db2b505ca3
445 files changed
+105274

No files matched your search

@@ -0,0 +1,72 @@
package com.bbflight.background_downloader;
import android.app.job.JobInfo;
import android.content.ComponentName;
import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
/** Runs against the real Android 9 framework classes, not stubbed builders. */
public final class DownloadNetworkPolicyProbe {
private static int checks;
private static void check(boolean value, String message) {
checks++;
if (!value) throw new AssertionError(message);
}
public static void main(String[] args) {
// Android's getuid JNI library is not loaded by a plain host JVM.
// Fixture only the process identity; capability matching and JobInfo
// below remain the real unmodified Android framework implementation.
libcore.io.Os originalOs = libcore.io.Libcore.os;
libcore.io.Libcore.os = (libcore.io.Os) java.lang.reflect.Proxy.newProxyInstance(
libcore.io.Os.class.getClassLoader(), new Class<?>[]{libcore.io.Os.class},
(proxy, method, arguments) -> method.getName().equals("getuid")
? 10000 : method.invoke(originalOs, arguments));
NetworkCapabilities cellular = new NetworkCapabilities()
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
cellular.removeCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
cellular.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN);
NetworkCapabilities wifi = new NetworkCapabilities(cellular)
.removeTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
ComponentName service = new ComponentName("org.reelbox.app", "DownloadTestService");
// Reproduce why NETWORK_TYPE_ANY queues despite a reachable media host.
JobInfo legacy = new JobInfo.Builder(1, service)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY).build();
check(legacy.getRequiredNetwork().hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED),
"Legacy ANY must reproduce the hidden validation requirement");
check(!legacy.getRequiredNetwork().networkCapabilities.satisfiedByNetworkCapabilities(cellular),
"Legacy request should reject an unvalidated internet-capable network");
NetworkRequest any = DownloadNetworkPolicy.request(false);
NetworkRequest wifiOnly = DownloadNetworkPolicy.request(true);
check(any.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET), "Internet is still required");
check(!any.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED), "No external validation requirement");
check(!any.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN), "VPNs remain allowed");
check(any.networkCapabilities.satisfiedByNetworkCapabilities(cellular), "Unvalidated cellular/VPN allowed");
check(any.networkCapabilities.satisfiedByNetworkCapabilities(wifi), "Unvalidated Wi-Fi/VPN allowed");
check(wifiOnly.hasTransport(NetworkCapabilities.TRANSPORT_WIFI), "Preserve Wi-Fi-only preference");
check(!wifiOnly.networkCapabilities.satisfiedByNetworkCapabilities(cellular), "Wi-Fi-only rejects cellular");
check(wifiOnly.networkCapabilities.satisfiedByNetworkCapabilities(wifi), "Wi-Fi-only accepts unvalidated Wi-Fi/VPN");
check(!any.networkCapabilities.satisfiedByNetworkCapabilities(new NetworkCapabilities()), "No-internet network rejected");
NetworkCapabilities vpnCellular = new NetworkCapabilities(cellular)
.addTransportType(NetworkCapabilities.TRANSPORT_VPN);
NetworkCapabilities vpnWifi = new NetworkCapabilities(wifi)
.addTransportType(NetworkCapabilities.TRANSPORT_VPN);
check(any.networkCapabilities.satisfiedByNetworkCapabilities(vpnCellular), "Explicit cellular-backed VPN allowed");
check(!wifiOnly.networkCapabilities.satisfiedByNetworkCapabilities(vpnCellular), "Wi-Fi-only rejects cellular-backed VPN");
check(wifiOnly.networkCapabilities.satisfiedByNetworkCapabilities(vpnWifi), "Explicit Wi-Fi-backed VPN allowed");
check(!wifiOnly.networkCapabilities.satisfiedByNetworkCapabilities(
new NetworkCapabilities(wifi).removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)),
"Wi-Fi without internet capability rejected");
JobInfo custom = new JobInfo.Builder(2, service).setRequiredNetwork(any).build();
check(!custom.getRequiredNetwork().hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED),
"JobScheduler must not re-add validation to an explicit request");
check(custom.getRequiredNetwork().networkCapabilities.satisfiedByNetworkCapabilities(cellular),
"UIDT-style explicit request can use the unvalidated network");
System.out.println("PASS DownloadNetworkPolicy: " + checks + " real Android framework assertions");
}
}