Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > General > Decrypting

Reply
 
Thread Tools Search this Thread Display Modes
Old 6th February 2009, 21:22   #661  |  Link
loo3aem3ON
Registered User
 
Join Date: Sep 2008
Posts: 189
Quote:
Originally Posted by KenD00 View Post
Code:
Exception in thread "main" [W] java.lang.UnsatisfiedLinkError: no qtawt in java.library.path
I can't convince java to find that damn shared library. I tried moving it around, added a java.library.path definition to the vmargs inside bdj.c but it still won't find that damn library .
Maybe your libqt3-mt.so.3 is not 32bit or some other dependencies of libqtawt.so are not met. I had to install the 32bit version of libqt3-mt.so.3 manually because i work on an amd64 system. From my notes:
Code:
http://www.boundlesssupremacy.com/Cappy/getlibs/getlibs-all.deb
getlibs -w http://ftp.de.debian.org/debian/pool/main/q/qt-x11-free/libqt3-mt_3.3.8b-5+b1_i386.deb
I can't compile the libqtawt.so (closed source?) and only the 32-bit version is available.

Anyway i recently switched from Java SE to ME and compiled the compact virtual machine (cvm) with debug flag so it's pretty verbose if something goes wrong. You can grab my binary snapshot from here. Run it with (adjust the paths):
Code:
./bin/cvm ${HOME}/bdplus/trunk/bdj/jni/libbdjinterface.so
The snapshot contains a standalone Java (microedition) installation so it shouldn't use any foreign jar files or stuff from other java installations. My player uses the cvm too and it's part of the BD-J standard.

If you want to compile it you will need the phoneme advanced mr2 snapshot. I had to merge the bdj.c with the phoneme source before compiling the cvm. Let me know if you need to know more details.

Last edited by loo3aem3ON; 6th February 2009 at 21:34.
loo3aem3ON is offline   Reply With Quote
Old 7th February 2009, 20:36   #662  |  Link
KenD00
Registered User
 
Join Date: Jan 2007
Location: Internet
Posts: 378
I'm running this on a 32 bit Ubuntu, ldd reports no missing libs. I've written a small java app which just loads the qtawt library and this works, don't know why it doesn't work from bdj.

Anyway, i've tried your cvm snapshot and had more success, qtawt is now loaded and i get a black window. During startup i got this error

Code:
"/home/<scrubbed>/bdj-cvm/lib/basis.jar" is not a valid classpath zip file or directory.
which i fixed by renaming basis_security.jar.

The cvm runs but fails to load any BD-J applet from the disc. The path to my drive matches the hardcoded path so this isn't the problem. I can't remember you ever mentioned which disc you are using, i assume we are talking about X-Files here because your posted 77770.jar matches almost the one from my disc (but there are differences, i think because i don't have your version of the movie and i remember Anydvd was updated to support a different version of X-Files), but i don't have 99900.jar (and no directory with that name) on my disc.

These are the error messages from loading the 99900.jar file, loading the 77770.jar produces the same ones:

Code:
[W] [BDJAppManager.startTitle()] startTitle(65535)
[W] 

[W] [BDJAppManager.setTitleSelectState()] set current title context state: 3, previos state: 1
[W] 

called Java.com.cl.bdj.helper.AppsDatabaseHelper.pGetAppControlCode
[W] java.util.zip.ZipException: No such file or directory
[W] 

[W] 	at java.util.zip.ZipFile.open(Ljava/lang/String;IJ)J(Native Method)
[W] 

[W] 	at java.util.zip.ZipFile.<init>(Ljava/io/File;I)V(ZipFile.java:146)
[W] 

[W] 	at java.util.jar.JarFile.<init>(Ljava/io/File;ZI)V(JarFile.java:138)
[W] 

[W] 	at java.util.jar.JarFile.<init>(Ljava/lang/String;Z)V(JarFile.java:90)
[W] 

[W] 	at com.cl.bdj.jar.JarAuthenication.extractJar(Ljava/lang/String;Ljava/lang/String;Z)V(Unknown Source)
[W] 

[W] 	at com.cl.bdj.appmanager.BDJAppProxy.securityCheckProcess(Ljava/lang/String;Ljava/lang/String;)V(Unknown Source)
[W] 

[W] 	at com.cl.bdj.appmanager.BDJAppProxy.loadResources()V(Unknown Source)
[W] 

[W] 	at com.cl.bdj.appmanager.BDJAppProxy.startBDJApp([Ljava/lang/String;)V(Unknown Source)
[W] 

[W] 	at com.cl.bdj.appmanager.BDJAppManager.runAutoStartApps()V(Unknown Source)
[W] 

[W] 	at com.cl.bdj.appmanager.BDJAppManager.startTitle(I)V(Unknown Source)
[W] 

[W] 	at com.cl.bdj.appmanager.BDJAppManager.initTitle(Z)V(Unknown Source)
[W] 

[W] 	at com.cl.bdj.main.BDJCFacade.initTitle(I)V(Unknown Source)
[W] 

[W] 	at com.cl.bdj.main.BDJCFacade.executeCommand(I[Ljava/lang/Object;)I(Unknown Source)
[W] 

[W] [BDJAppProxy.loadResources()] Start printing class path for application:OID(2147443820), AID(16384)
[W] 

[W] [BDJAppProxy.loadResources()] ClassPath<0>:file:///DOCR/signed/99900/
[W] 

called Java.com.cl.bdj.helper.AppsDatabaseHelper.pGetAppBaseDirectory -> OrgID = 7FFF646C, AppID = 4000
called Java.com.cl.bdj.helper.AppsDatabaseHelper.pGetAppClasspathExt -> OrgID = 7FFF646C, AppID = 4000
[W] [BDJAppUtil.getAppClasspath()] /DOCR/signed/
[W] 

[W] [BDJAppUtil.getAppClasspath()] 99900
[W] 

[W] [BDJAppUtil.getAppClasspath()] 
[W] 

[W] [BDJPrimitiveCommand.doLoadXlet()] load BD-J app : com.bydeluxe.fox.FirstPlayXlet
[W] 

called com.cl.bdj.helper.BDJTitleInfoHelper.pGetCurrentDiscIdFromC
called Java.com.cl.bdj.helper.CUtil.pSetJITOffSwitch -> NOT IMPLEMENTED!
[W] [BDJClassLoader.findClass()] Can't find class:com.bydeluxe.fox.FirstPlayXlet, start printing class path ...
[W] 

[W] [BDJClassLoader.findClass()] ClassPath<0>:file:/DOCR/signed/99900/
[W] 

[W] [BDJAppUtil.createXletInstance()] [ERROR!]in createXletInstance(), caught exception ClassNotFoundException
[W] 

[W] java.lang.ClassNotFoundException: com.bydeluxe.fox.FirstPlayXlet
[W] 

[W] 	at java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class;(URLClassLoader.java:234)
[W] 

[W] 	at com.cl.bdj.appmanager.BDJClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class;(Unknown Source)
[W] 

[W] 	at java.lang.ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;(ClassLoader.java:349)
[W] 

[W] 	at java.lang.ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class;(ClassLoader.java:291)
[W] 

[W] 	at com.cl.bdj.appmanager.BDJAppUtil.createXletInstance(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Object;(Unknown Source)
[W] 

[W] 	at com.cl.bdj.appmanager.BDJPrimitiveCommand.doLoadXlet(Lcom/cl/bdj/appmanager/XletRunnerContext;)Z(Unknown Source)
[W] 

[W] 	at com.cl.bdj.appmanager.StartXletCommand.execute()V(Unknown Source)
[W] 

[W] 	at com.cl.bdj.event.BDJCommandRunner.run()V(Unknown Source)
[W] 

[W] 	at java.lang.Thread.run()V(Thread.java:712)
[W] 

[W] 	at java.lang.Thread.startup(Z)V(Thread.java:782)
[W] 

[W] [BDJPrimitiveCommand.doLoadXlet()] load BD-J app ended : com.bydeluxe.fox.FirstPlayXlet
[W] 

[W] [BDJAppProxy.stateTransition()] state change failed : BDJAppProxy (2147443820, 16384, com.bydeluxe.fox.FirstPlayXlet), 2 -> 0
[W]
KenD00 is offline   Reply With Quote
Old 7th February 2009, 23:42   #663  |  Link
loo3aem3ON
Registered User
 
Join Date: Sep 2008
Posts: 189
Quote:
Originally Posted by KenD00 View Post
The cvm runs but fails to load any BD-J applet from the disc.
It doesn't load the jar files from the disc. Instead you have to copy them to "/tmp/BDJRoot/" (both the 77770.jar and 99900.jar). That directory is the local application cache which can change over time when using BD-Live. It will extract a part of the jar archives inside the "DOCR/signed/" subdirectory. I don't fully understand this yet.

Quote:
Originally Posted by KenD00 View Post
I can't remember you ever mentioned which disc you are using, i assume we are talking about X-Files here because your posted 77770.jar matches almost the one from my disc (but there are differences, i think because i don't have your version of the movie and i remember Anydvd was updated to support a different version of X-Files), but i don't have 99900.jar (and no directory with that name) on my disc.
It's "The Day The Earth Stood Still" and you can download the content of the JAR directory from posting #645.

Quote:
Originally Posted by KenD00 View Post
These are the error messages from loading the 99900.jar file, loading the 77770.jar produces the same ones:
I'm glad to see you made it this far. You should get a bit further with both jar files in the /tmp/BDJRoot/ directory but there will be null pointer exception (certificate == null?) soon afterwards.

A good way to proceed is to edit the com.cl.bdj.helper.* classes (inside the bdj.jar) to make them print out a console message of the actual value/string they got from the native methods they called. For example:
Code:
invokestatic com/cl/bdj/util/BDJTrace/info(Ljava/lang/String;)V
will print the string you pass as parameter plus the class and method name from which it is called.
The additional debug output i get when using the modified bdj.jar helps me to correct the bugs in the native interface. My source code C files are named after the helper classes as you might have noticed.
loo3aem3ON is offline   Reply With Quote
Old 14th February 2009, 17:44   #664  |  Link
loo3aem3ON
Registered User
 
Join Date: Sep 2008
Posts: 189
The classes in the "btclasses.zip" archive have been merged into the cvm binary (ROMization) to boost performance. That causes some problems because some of these classes have been customized by the vendor of my player. For example a "extractJar" method has been added to the java.util.jar.JarFile which is therefor missing in the cvm i compiled. I have several options in this case and will try them all.
I also managed to patch all methods which call native code and return boolean, int or string. I also succeeded in attaching a debugger (jdb) to the cvm to monitor the BD-J implementation. It's quite complex.

Progress is slow because i'm working alone on this. So be patient.
loo3aem3ON is offline   Reply With Quote
Old 15th February 2009, 19:58   #665  |  Link
loo3aem3ON
Registered User
 
Join Date: Sep 2008
Posts: 189
I finally got the BD+ handshake application loaded and running:
Code:
[BDJPrimitiveCommand.doLoadXlet()] load BD-J app : com.macrovision.bdplus.Handshake  
[...]
[BDJPrimitiveCommand.doLoadXlet()] load BD-J app ended : com.macrovision.bdplus.Handshake                                                      
[BDJPrimitiveCommand.doInitXlet()] init BD-J app : com.macrovision.bdplus.Handshake                                                            
[BDJPrimitiveCommand.doInitXlet()] init BD-J app ended: com.macrovision.bdplus.Handshake                                                       
[BDJPrimitiveCommand.doStartXlet()] start BD-J app : com.macrovision.bdplus.Handshake  
[...]
[BDJPrimitiveCommand.doStartXlet()] start BD-J app ended: com.macrovision.bdplus.Handshake                                                     
[BDJAppProxy.stateTransition()] state change succeeded : BDJAppProxy (2147443820, 30583, com.macrovision.bdplus.Handshake), 2 -> 0 
[...]
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(104, 0) -> NOT IMPLEMENTED!
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(103, F1000000) -> NOT IMPLEMENTED!
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pTriggerPSR103change -> NOT IMPLEMENTED!
The application (com.macrovision.bdplus.Handshake) sets PSR103 to 0xF1000000 and PSR104 to 0 as expected (see first lines of posting #642). The following call "pTriggerPSR103change" probably places a trigger on PSR103 so the thread resumes once the content code is done with its changes. I don't know the exact mechanism yet.

You can download the binary snapshot here.

Steps to reproduce:
1. mount the disc at "/media/cdrom/" (certificate will be verified)
1. place the 77770.jar and the 99900.jar in the directory "/tmp/BDJRoot/" (see posting #645)
2. create a directory "/DOCR/" (root directory -> i couldn't move it into the "/tmp/" folder)
3. make sure both directories have user write permission (stuff will be written into both directories by the java code)
4. run: "./bin/cvm ${HOME}/bdplus/trunk/bdj/jni/libbdjinterface.so" <-- adapt to your directory structure

Edit: the "bdj.c" in the archive is slightly different from the version i used to create the cvm (debugging with jdb is currently disabled).

Last edited by loo3aem3ON; 15th February 2009 at 20:07.
loo3aem3ON is offline   Reply With Quote
Old 16th February 2009, 02:06   #666  |  Link
loo3aem3ON
Registered User
 
Join Date: Sep 2008
Posts: 189
After the content code wrote PSR102 the player executes command 8 (native code calls java method "executeCommand") which creates a BDPlusStatusEvent object. The constructor gets the contents of PSR102 as parameter. The status event object is then passed to the application. The "pTriggerPSR103change" call might cause BD+ event#0210.

I'll run some tests to see if the handshake works properly. If successful i can start merging this into libbluray.

Last edited by loo3aem3ON; 16th February 2009 at 02:11.
loo3aem3ON is offline   Reply With Quote
Old 18th February 2009, 01:51   #667  |  Link
loo3aem3ON
Registered User
 
Join Date: Sep 2008
Posts: 189
It seems to be working. Below are the relevant sections of the console output. You should compare this with posting #642 (look for the correct return "BC79595F 97F05643 07A0ABF2 CC10F7C5")
Quote:
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(104, 0x0)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(103, 0xF1000000)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pTriggerPSR103change
[...]
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pGetPSR(104) -> FFFFFFFE!
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(103, 0x4000)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pTriggerPSR103change
[...]
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pGetPSR(104) -> 3EA9DAFF!
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(103, 0x8000)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pTriggerPSR103change
[...]
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pGetPSR(104) -> B23259D5!
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(103, 0xC000)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pTriggerPSR103change
[...]
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pGetPSR(104) -> 53B07B58!
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(103, 0x10000)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pTriggerPSR103change
[...]
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pGetPSR(104) -> 60FBC4BB!
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(103, 0x14000)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pTriggerPSR103change
[...]
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pGetPSR(104) -> 60FBC4BC!
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(104, 0x60FBC4BD)
[...]
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(104, 0xBC79595F)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(103, 0x4014004)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pTriggerPSR103change
[...]
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(104, 0x97F05643)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(103, 0x4014008)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pTriggerPSR103change
[...]
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(104, 0x7A0ABF2)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(103, 0x401400C)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pTriggerPSR103change
[...]
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(104, 0xCC10F7C5)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(103, 0x4014010)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pTriggerPSR103change
[...]
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pGetPSR(104) -> 10000000!
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(103, 0x18010)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pTriggerPSR103change
[...]
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pGetPSR(104) -> 00000000!
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(103, 0x1A010)
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pTriggerPSR103change
[...]
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pGetPSR(104) -> 00000001!
called Java.com.cl.bdj.helper.BDJVFSHelper.RegisterAccessHelper.pSetPSR(104, 0x2)
So we should probably start creating a libbdj which can be used in conjunction with libbluray to repair the latest batch of BD+ corrupted discs.

Btw the handshake application needs additional jar files but these are fetched automatically from the disc after i changed the VFS root to /media/cdrom.

Last edited by loo3aem3ON; 18th February 2009 at 01:54.
loo3aem3ON is offline   Reply With Quote
Old 18th February 2009, 13:35   #668  |  Link
br0kenpipe
Registered User
 
Join Date: Jun 2005
Posts: 2
You're doing an excellent job loo3aem3ON! And I would gladly help. But I'm afraid I don't know much about Java, and pretty much anything else discussed in this thread.

Just wanted to give you an encouraging word, and keep up the excellent work!
br0kenpipe is offline   Reply With Quote
Old 18th February 2009, 14:30   #669  |  Link
loo3aem3ON
Registered User
 
Join Date: Sep 2008
Posts: 189
Thanks. You can help by grabbing the latest binary snapshot and playing around with it. Then report the problems you encounter.

About 80% of BD-J is implemented in java and this part can be copied from any Blu-Ray player without modifications. The rest are native functions which have to be implemented in C/C++ or whatever. Of particular interest are the functions which are used to indirectly talk with the BD+ content code via the player status registers (PSR) 102-104.

I don't know how difficult it is to get the menus working. A black window pops up in the top left corner of the screen but it isn't filled with contents because that's being done by the second application which i haven't yet tried to start. The primary goal was to get the first application (BD+ handshake) running.
loo3aem3ON is offline   Reply With Quote
Old 18th February 2009, 21:20   #670  |  Link
slicemaster102
Guest
 
Posts: n/a
Quote:
Originally Posted by loo3aem3ON View Post
Thanks. You can help by grabbing the latest binary snapshot and playing around with it. Then report the problems you encounter.

About 80% of BD-J is implemented in java and this part can be copied from any Blu-Ray player without modifications. The rest are native functions which have to be implemented in C/C++ or whatever. Of particular interest are the functions which are used to indirectly talk with the BD+ content code via the player status registers (PSR) 102-104.

I don't know how difficult it is to get the menus working. A black window pops up in the top left corner of the screen but it isn't filled with contents because that's being done by the second application which i haven't yet tried to start. The primary goal was to get the first application (BD+ handshake) running.
This is great news, the progress you and the others working on this project have made in the last few weeks is more then the entire Linux community efforts combined for the last…o 6 moths or so. The guys here on the doom9 forums have almost successfully reverse-engineered the VM completely and now you are braking down the walls for BD-J in order to completely bypass BD+. An amazing feat if you ask me considering the relatively short amount of time you guys have been working on this. As to your comments regarding getting a full BD-J library in development, I feel this is the next logical step as it will be needed to get BD+ is fully handled. This is not to mention the fact that once we have an operational BD-J library, we would more or less have fully functional menu support under Linux with relatively little effort compared to what has already been done.

Keep up the good work guys!

Slice

P.S. something that might be nice to get more people testing this stuff is to make it easily and openly available, maybe precompiled and available for download from a repository for Linux. Also, basic step by step instructions on how to use these tools is not readily available so that might be something to consider.

P.P.S. I have not followed the progress of AACS very closely, has it been completely broken yet or are we still stuck only being able to decrypt titles that feature MKBv7 or earlier?
  Reply With Quote
Old 18th February 2009, 22:18   #671  |  Link
kkloster21
Registered User
 
Join Date: Jun 2008
Posts: 117
@ Slice:

as of now we (Linux users) are only able to decrypt titles that are MKBv8 and earlier. We don't have processing keys for MKBv's beyond that. Although Mike Chen of the MakeMKV project claims that they have keys that may be able to go as far as MKBv11:

http://forum.doom9.org/showthread.ph...79#post1242679

but he hasn't yet responded to a request to share these keys with KenD00 (for DumpHD).

[edit: make that MKBv12: http://forum.doom9.org/showthread.ph...98#post1248998]

Last edited by kkloster21; 18th February 2009 at 22:23.
kkloster21 is offline   Reply With Quote
Old 18th February 2009, 23:50   #672  |  Link
KenD00
Registered User
 
Join Date: Jan 2007
Location: Internet
Posts: 378
Quote:
Originally Posted by slicemaster102 View Post
P.P.S. I have not followed the progress of AACS very closely, has it been completely broken yet
AACS most probably will never be broken and there will be always the hunt for new keys.

KenD00 is offline   Reply With Quote
Old 19th February 2009, 11:14   #673  |  Link
880
Registered User
 
Join Date: Jan 2009
Posts: 125
Can I donate money or blu-ray discs to you? I am not very technical but I want to help out.
880 is offline   Reply With Quote
Old 20th February 2009, 11:49   #674  |  Link
Raybuntu
Registered User
 
Join Date: Oct 2008
Posts: 1
Hi,
where I can find the source code of this project. Maybe you could host this project on https://launchpad.net/ ? There you can make an bazaar repo so others could hack on the code too!? I could help you to register and host this project on Launchpad. I can also provide you help for Debian/Ubuntu packaging. I would be glad to helping this project
Raybuntu is offline   Reply With Quote
Old 20th February 2009, 13:02   #675  |  Link
loo3aem3ON
Registered User
 
Join Date: Sep 2008
Posts: 189
Quote:
Originally Posted by slicemaster102 View Post
in order to completely bypass BD+.
I don't think "bypassing" BD+ is possible. We are doing exactly what all the licensed Blu-Ray players are doing.

Quote:
Originally Posted by slicemaster102 View Post
This is not to mention the fact that once we have an operational BD-J library, we would more or less have fully functional menu support under Linux with relatively little effort compared to what has already been done.
Hopefully

Quote:
Originally Posted by slicemaster102 View Post
P.S. something that might be nice to get more people testing this stuff is to make it easily and openly available, maybe precompiled and available for download from a repository for Linux.
You can find full build/binary snapshots in my previous postings.

Quote:
Originally Posted by slicemaster102 View Post
Also, basic step by step instructions on how to use these tools is not readily available so that might be something to consider.
Will do.

Quote:
Originally Posted by KenD00 View Post
AACS most probably will never be broken and there will be always the hunt for new keys.
I would be a careful with such statements. Even if no weakness can be found (which i think is unlikely) the underlying AES cipher is losing 1 bit of its security every 18 months (Moore's law).
Well maybe by the time AES becomes insecure we will all have DRM modules implanted in our brains.

Quote:
Originally Posted by 880 View Post
Can I donate money or blu-ray discs to you? I am not very technical but I want to help out.
No thank you.

Quote:
Originally Posted by Raybuntu View Post
where I can find the source code of this project.
It's currently hosted at assembla: https://trac.assembla.com/bdplus/

Quote:
Originally Posted by Raybuntu View Post
Maybe you could host this project on https://launchpad.net/ ?
I'm currently quite happy with assembla but it might be a good idea to move the BD-J part (trunk/bdj) to a different repository.

Quote:
Originally Posted by Raybuntu View Post
I would be glad to helping this project
AACS needs to added to libbluray (currently BD+ only). The maintainer (Accident) is busy at the moment. You could help by finding volunteers to help with the project.
I need to explain and simplify the environment for BD-J so more people are willing to experiment. The directory structure needs to be explained (eg. BUDA = "Binding Unit Data Area" etc). Furthermore some of the native functions return data specific to the movie "The Day The Earth Stood Still".
loo3aem3ON is offline   Reply With Quote
Old 21st February 2009, 21:43   #676  |  Link
loo3aem3ON
Registered User
 
Join Date: Sep 2008
Posts: 189
The BD-J platform development project is now hosted at https://launchpad.net/bdj.

The method "readBDJO" (trunk/src/bdjo/BDJOReader.cpp) and its dependencies need to be ported from java to C++. I've already renamed all the file extensions. The conversion from and to XML is irrelevant. Have a look at the method names in "AppsDatabaseHelper.c" and you will see why.

The native code first needs to parse the index.bdmv to obtain the FirstPlaybackmobjidref (name of a BD-J object in the BDJO/ directory) and then parse the identified *.bdjo file.
At the moment the data from the 07777.bdjo is hardcoded in the methods of "AppsDatabaseHelper.c" so other applications from other Blu-Rays won't work. Furthermore the AppCacheInfo section of this BD-J object contains a list files which have to be loaded into the local cache (which i called "/tmp/BDJRoot/") for fast access. Currently these files have to be copied manually. So you see how important it is to read these BD-J objects properly.
Reading the index.bdmv is not a problem.
loo3aem3ON is offline   Reply With Quote
Old 22nd February 2009, 06:55   #677  |  Link
Accident
Registered User
 
Join Date: Aug 2002
Posts: 111
Quote:
Originally Posted by loo3aem3ON View Post
AACS needs to added to libbluray (currently BD+ only). The maintainer (Accident) is busy at the moment. You could help by finding volunteers to help with the project.
I want to apologise not being of much help lately. Large equipment failure that I got the honour to fix. But I can do code just fine when we have new things to solve, but no time to help with the in-depth research. On related news, I actually ended up with a BD player and a couple of disks, so it will be fun to be able to some experience actually playing a disk.

Related to libaacs, and libbluray, I was thinking of keeping the libraries separated, but write some example sources that uses both libraries, and massage them to play together nicely. I may end up checking in libaacs since its maintainer appears to be MIA. I have version 0.05.
Accident is offline   Reply With Quote
Old 22nd February 2009, 11:46   #678  |  Link
loo3aem3ON
Registered User
 
Join Date: Sep 2008
Posts: 189
That's the latest binary/build snapshot containing the libraries missing from the launchpad repository: Download.
Start it simply with "sh run.sh". The disc has to be mounted at "/media/cdrom". It probably won't run far so don't be disappointed (see my previous posting for an explanation). I'm working on it.

@Accident:
Focus on libaacs then and maybe rename libbluray to libbdplus.

Last edited by loo3aem3ON; 22nd February 2009 at 11:55.
loo3aem3ON is offline   Reply With Quote
Old 22nd February 2009, 17:37   #679  |  Link
lbalan79
Registered User
 
Join Date: Aug 2006
Posts: 8
Helping test

Is there any way to help test this code without the actual use of an blu-ray phisical reader? I do not have an blu-ray unit but I would gladly help in case there is any test work that needs to be done.
lbalan79 is offline   Reply With Quote
Old 22nd February 2009, 19:10   #680  |  Link
loo3aem3ON
Registered User
 
Join Date: Sep 2008
Posts: 189
Quote:
Originally Posted by lbalan79 View Post
Is there any way to help test this code without the actual use of an blu-ray phisical reader?
It doesn't require the physical disc. You can copy these files/directories to /media/cdrom/ (path is currently hardcoded as well) :
Code:
CERTIFICATE/app.discroot.crt
CERTIFICATE/bu.discroot.crt
BDMV/index.bdmv
BDMV/BDJO/*
BDMV/JAR/*
None of these files are encrypted. At least one *.jar file has to be present in BDMV/JAR/ otherwise there is no application to execute.

See if you can find these files somewhere. Otherwise i could send you those from my disc.
loo3aem3ON is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 22:35.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.