Base: BD-J Adjustments Blu-ray scaffold

Vendored BD-J SDK, tsMuxeR + local VLC plugins, ffmpeg asset generation,
and a signed BD-J Xlet menu (org.homebrew.MyXlet) authored into a UDF 2.50 ISO.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
happy 2026-08-25 14:47:05 -04:00
commit 9c88b8f7f6
110 changed files with 19469 additions and 0 deletions

3
vendor/bdj-sdk/target/.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
*.class
*.jar

18
vendor/bdj-sdk/target/Makefile vendored Normal file
View file

@ -0,0 +1,18 @@
MAKEFILE_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
BDJSDK_HOME ?= $(MAKEFILE_DIR)/../
JAVA8_HOME ?= $(BDJSDK_HOME)/host/jdk8
JAVAC := $(JAVA8_HOME)/bin/javac
JAR := $(JAVA8_HOME)/bin/jar
SOURCES := $(shell find $(MAKEFILE_DIR)/src -name *.java -type f)
JFLAGS := -Xlint:-options -source 1.3 -target 1.3
lib/sony-stubs.jar: $(SOURCES)
$(JAVAC) $(JFLAGS) $(SOURCES)
$(JAR) cf $@ -C src/ .
clean:
rm lib/sony-stubs.jar

3
vendor/bdj-sdk/target/lib/README vendored Normal file
View file

@ -0,0 +1,3 @@
Origin:
https://github.com/zathras/java.net/raw/master/hdcookbook/lib/stubs/interactive/classes.zip

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,13 @@
package com.sony.gemstack.core;
public class CoreAppContext {
public static CoreAppContext getContext() {
return null;
}
public CoreIxcClassLoader getIxcClassLoader() {
return null;
}
}

View file

@ -0,0 +1,6 @@
package com.sony.gemstack.core;
public interface CoreIxcClassLoader {
Class findLoadedProxyClass(String str);
Class defineProxyClass(String str, byte[] bytes);
}

View file

@ -0,0 +1,22 @@
package com.sony.gemstack.org.dvb.io.ixc;
import com.sony.gemstack.core.CoreIxcClassLoader;
import java.rmi.RemoteException;
public abstract class IxcProxy {
public abstract Object getRemote();
public abstract void forgetRemote();
protected IxcProxy(CoreIxcClassLoader loader1, CoreIxcClassLoader loader2) {
}
protected Object replaceObject(Object obj, CoreIxcClassLoader loader) throws RemoteException {
return null;
}
protected Object invokeMethod(Object[] objects, String string1, String string2) throws Exception {
return null;
}
}

View file

@ -0,0 +1,7 @@
package jdk.internal.access;
import java.io.FileDescriptor;
public interface JavaIOFileDescriptorAccess {
int get(FileDescriptor fd);
}

View file

@ -0,0 +1,46 @@
package jdk.internal.access;
import java.net.URL;
import java.nio.ByteBuffer;
import java.security.AccessControlContext;
import java.security.CodeSource;
import java.security.GeneralSecurityException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.Permission;
import java.security.PermissionCollection;
import java.security.PrivilegedAction;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.security.ProtectionDomain;
import java.security.Provider;
import java.util.Set;
import jdk.internal.security.CodeSigner;
import jdk.internal.security.Entry;
import jdk.internal.security.ProtectionParameter;
import jdk.internal.security.Service;
import jdk.internal.security.keystore.Builder;
public interface JavaSecurityAccess {
public class ProtectionDomainCache{
}
Object doIntersectionPrivilege(PrivilegedAction action, AccessControlContext ctx1, AccessControlContext ctx2);
Object doIntersectionPrivilege(PrivilegedAction action, AccessControlContext ctx);
ProtectionDomainCache getProtectionDomainCache();
Object doPrivilegedWithCombiner(PrivilegedExceptionAction action, AccessControlContext ctx, Permission[] perms) throws PrivilegedActionException;
Object doPrivileged(PrivilegedAction action, AccessControlContext ctx, Permission[] perms);
Entry getEntry(KeyStore ks, String str, ProtectionParameter pp) throws NoSuchAlgorithmException, GeneralSecurityException;
Service getService(Provider provider, String str1, String str2);
void putService(Provider provider, Service service);
Set getServices(Provider provider);
Provider configure(Provider provider, String str);
Object newInstance(Class clazz, String str, Object obj) throws Exception;
boolean checkEngine(String str);
String getEngineName(String str);
CodeSource newCodeSource(URL url, CodeSigner[] cs);
void update(MessageDigest md, ByteBuffer bb);
Builder newKeyStoreBuilder(KeyStore ks, ProtectionParameter pp);
}

View file

@ -0,0 +1,14 @@
package jdk.internal.access;
public class SharedSecrets {
public static JavaSecurityAccess getJavaSecurityAccess() {
return null;
}
public static void setJavaSecurityAccess(JavaSecurityAccess access) {
}
public static JavaIOFileDescriptorAccess getJavaIOFileDescriptorAccess() {
return null;
}
}

View file

@ -0,0 +1,60 @@
package jdk.internal.misc;
public final class Unsafe {
private static final Unsafe theUnsafe = new Unsafe();
private Unsafe() {
}
public static Unsafe getUnsafe() {
return theUnsafe;
}
public long allocateMemory(long size) {
return 0;
}
public void freeMemory(long addr) {
}
public void setMemory(long addr, long length, byte value) {
}
public void copyMemory(long src_addr, long dst_addr, long length) {
}
public byte getByte(long addr) {
return 0;
}
public short getShort(long addr) {
return 0;
}
public int getInt(long addr) {
return 0;
}
public long getLong(long addr) {
return 0;
}
public void putByte(long addr, byte value) {
}
public void putShort(long addr, short value) {
}
public void putInt(long addr, int value) {
}
public void putLong(long addr, long value) {
}
public int arrayBaseOffset(Class arrayClass) {
return 0;
}
public native long getLong(Object o, long offset);
}

View file

@ -0,0 +1,4 @@
package jdk.internal.security;
public class CodeSigner{
}

View file

@ -0,0 +1,4 @@
package jdk.internal.security;
public class Entry {
}

View file

@ -0,0 +1,4 @@
package jdk.internal.security;
public class ProtectionParameter {
}

View file

@ -0,0 +1,4 @@
package jdk.internal.security;
public class Service {
}

View file

@ -0,0 +1,4 @@
package jdk.internal.security.keystore;
public class Builder {
}

View file

@ -0,0 +1,90 @@
package sun.awt.io;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
public class FileFileIO {
protected FileFileIO(String filename) {
}
public String getName() {
return null;
}
public String getPath() {
return null;
}
public InputStream getInputStream() throws IOException {
return null;
}
public OutputStream getOutputStream() throws IOException {
return null;
}
public String getAbsolutePath() {
return null;
}
public String getCanonicalPath() {
return null;
}
public String getParent() {
return null;
}
public String canonPath(String path) throws IOException {
return null;
}
public boolean exists() {
return false;
}
public boolean canWrite() {
return false;
}
public boolean canRead() {
return false;
}
public boolean isFile() {
return false;
}
public boolean isDirectory() {
return false;
}
public boolean isAbsolute() {
return false;
}
public long lastModified() {
return 0;
}
public long length() {
return 0;
}
public String[] list() {
return null;
}
public boolean delete() {
return false;
}
public boolean mkdir() {
return false;
}
public boolean mkdirs() {
return false;
}
}

View file

@ -0,0 +1,19 @@
package sun.net.www.protocol.file;
import java.io.File;
import java.io.InputStream;
import java.io.IOException;
import java.net.URL;
public class FileURLConnection {
protected FileURLConnection(URL url, File file) {
}
public void connect() throws IOException {
}
public synchronized InputStream getInputStream() throws IOException {
return null;
}
}