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. |
|
|
Thread Tools | Search this Thread | Display Modes |
15th March 2007, 19:53 | #61 | Link | |
Registered User
Join Date: Sep 2006
Posts: 390
|
Quote:
This could in fact be the case because the buffer isn't cleaned up between the two and the agid isn't working (so the drive doesn't overwrite the buffer with new info). This would also mean that while the Dsig looks like its filled its not filled by the drive (which would make sense if there is no agid btw) We need to test this (agid stuff) with aacstiny first. Last edited by arnezami; 15th March 2007 at 19:55. |
|
15th March 2007, 23:57 | #62 | Link | |
Registered User
Join Date: Feb 2007
Posts: 123
|
Quote:
Here is a Makefile for the Linux users that features "make" "make clean" "make install". The file must be called "Makefile" with capital 'M'. Code:
# Top-level Makefile for aacstiny CC = gcc CFLAGS=-Wall -O2 .SUFFIXES: .o .c .h OBJS = aacstiny.o ioctl.o mmc.o EXE = aacstiny .c.o: $(CC) $(CFLAGS) -c $< $(EXE): $(OBJS) $(CC) -o $@ $(OBJS) all: clean $(EXE) clean: -rm -f *.o $(EXE) install: cp $(EXE) /usr/local/bin Code:
~/tr/aacstiny$ make gcc -Wall -O2 -c aacstiny.c aacstiny.c:40: warning: return type defaults to ‘int’ aacstiny.c:83: warning: return type defaults to ‘int’ aacstiny.c: In function ‘main’: aacstiny.c:193: warning: pointer targets in passing argument 1 of ‘output_key’ differ in signedness aacstiny.c:239: warning: label ‘err’ defined but not used aacstiny.c: In function ‘output_text’: aacstiny.c:97: warning: control reaches end of non-void function aacstiny.c: In function ‘output_key’: aacstiny.c:80: warning: control reaches end of non-void function gcc -Wall -O2 -c ioctl.c ioctl.c: In function ‘close_drive’: ioctl.c:167: warning: implicit declaration of function ‘close’ gcc -Wall -O2 -c mmc.c gcc -o aacstiny aacstiny.o ioctl.o mmc.o ~/tr/aacstiny$ Last edited by lightshadow; 16th March 2007 at 00:01. Reason: added example |
|
16th March 2007, 00:35 | #63 | Link | |
Registered User
Join Date: Jan 2007
Posts: 20
|
Quote:
here is the output from aacstiny: Sending report key command: A40000000000000200003F00 Invalidation AGID 0. Result: 0 Sending report key command: A40000000000000200007F00 Invalidation AGID 1. Result: 0 Sending report key command: A4000000000000020000BF00 Invalidation AGID 2. Result: 0 Sending report key command: A4000000000000020000FF00 Invalidation AGID 3. Result: 0 Sending report key command: A40000000000000200080000 Returning buffer from report agid command: 0000000000000000 All AGIDs in use, aborting. AGID: -1 |
|
16th March 2007, 07:11 | #64 | Link | |
Registered User
Join Date: Sep 2006
Posts: 390
|
Quote:
I'm starting to believe the PS3 does not use the AACS-auth system (or we can't use it). Which means: 1) We can go directly for an (encrypted?) Volume ID (but what to use as AGID?). Skipping the AACS auth process. This is unlikely to be that simple. But what was that Volume ID we got earlier: was that also a buffer fluke? We have to test this seperately. 2) We simply don't know how to extract a Volume ID from the PS3. And somehow have to sniff the (hardware) bus in order to see how its retrieved. 3) The hypervisor is blocking the AGID mmc command. We would have to break the hypervisor or (maybe) hack the drive firmware. Or maybe better: try to install the drive into a PC (with no hypervisor) and see if we can get the Volume ID. Of course we could still do something wrong. But seeing the response from aacstiny above (which is really simple) I don't think we've done anything wrong here. Somebody check this please. Can somebody test aacskeys or aacstiny on a PC linux system (HD DVD or Blu-ray). This would confirm the program is working and that its the PS3 acting up. We really need to know this for certain. Regards, arnezami Last edited by arnezami; 16th March 2007 at 07:37. |
|
16th March 2007, 07:12 | #65 | Link |
Registered User
Join Date: Jan 2007
Posts: 20
|
Questions:
Anybody tested the aacstiny apps under linux x86 or x86-64 ?
Maybe the problem of aacstiny and aacskeys is that x86 processor are little-endian and PPC are either Big-endian or Bi-endian... http://en.wikipedia.org/wiki/Endian Don't know if it applies but I know that we are playing with registry, memory addresses... Edit: Esay way to test under linux x86: - download ubuntu livecd iso - run - compile aacstiny - run Also, there is two other ways to test aacstiny: 1- user yellow dog linux under a PowerPC G5 Mac. Problem: not lot of people got a ppc mac, with a blu-ray drive, with linux as the OS ... 2- run linux on ps3... load linux only in memory (hardware detection, shell ans aacstiny) - disconnect the hard drive (serial ata, so hot plug) - plug serial ata blu-ray or ide blu-ray with converter in place of the hard drive - detect the blu-ray drive (rerun the hardware detection) - run aacstiny (so no need to open the ps3, so the warranty is kept) Usefulness: maybe the hypervisor only filter the command on the blu-ray serial ata channel, and not on the harddrive We could be able to know if the restriction is on the hypervisor or in the blu-ray firmware (because the external blu-ray will have already been tested in windows and report no problem). If you got any other suggestion, be my guest. Last edited by woodspire; 16th March 2007 at 13:45. |
16th March 2007, 17:03 | #66 | Link | ||
Registered User
Join Date: Jan 2007
Location: Tel-Aviv, Israel
Posts: 185
|
Quote:
There is an easy way to check for host system endianness: Code:
#include <stdio.h> union foo { char p[4]; int k; }; int main() { int j; union foo bar; printf("Bigendian platform (ie Mac OS X PPC) would return \"abcd\"\n"); printf("Littleendian platform (ie Linux x86) would return \"dcba\"\n"); printf("Your platform returned "); bar.k = 0x61626364; for(j=0; j<4 ; j++) { printf("%c",bar.p[j]); } printf("\n"); return 0; } however we already do know that PlayStation uses a PowerPC based CPU that is bigendian, while PCs are littleendian. Quote:
Sorry, I don't have a PS3, so most I can do is theorise. |
||
17th March 2007, 18:33 | #67 | Link | |
Registered User
Join Date: Sep 2006
Posts: 390
|
Quote:
We indeed need to know where exactly the problem lies. (btw is there a live cd available with kernel 2.6.20 with udf 2.5 support?) I have been distracted a bit by the sequence key issue/development etc. But I'm also thinking about some test programs to see whats going on regarding the PS3: making a very simple mmc commmand actually work would be confirmation we are doing something right . I'm not so sure endianess playes a role anymore: the agid request command is printed above and is (and should be) the same for any system (btw: I used a simple "for loop" to print it). So I don't think this is the problem. The commands sent are according to specs. The result is not. Code:
Sending report key command: A40000000000000200080000 Returning buffer from report agid command: 0000000000000000 arnezami Last edited by arnezami; 18th March 2007 at 02:44. |
|
17th March 2007, 20:47 | #68 | Link | |
Registered User
Join Date: Jan 2007
Posts: 20
|
Quote:
The result was: ABCD. So the PS3 is big endian. |
|
18th March 2007, 13:42 | #69 | Link | |
Registered User
Join Date: Sep 2006
Posts: 390
|
Since we are possibly dealing with the hypervisor I think this might be useful:
http://wiki.ps2dev.org/ps3:hypervisor (discussion here) It deals with hypervisor commands. I guess the ioctl function we use should at some point use the hypervisor commands to access the drive. Whether this is fully implemented or whether the right commands are available (mmc stuff) is a question I cannot anwser. But maybe somebody else can go into this more deeply. Figure out whats going on. Btw: on this page you can read about the ioctl commands being blocked : Quote:
arnezami [edit]This looks like the command we are talking about: http://wiki.ps2dev.org/ps3:hyperviso...device_command Last edited by arnezami; 18th March 2007 at 17:05. |
|
18th March 2007, 14:40 | #70 | Link | |
Registered User
Join Date: Sep 2006
Posts: 390
|
Hmmm. Might this be the problem:
Quote:
[edit]Hmmm. It seems there is a lv1_tag (- tag to identify operation?) given back by the lv1_storage_send_device_command which probably has to be used when using the lv1_storage_get_async_status and lv1_storage_check_async_status methods. But the latter don't give a buffer pointer so I'm starting to believe we simply might have to wait a little longer and take another look at our buffer... Last edited by arnezami; 18th March 2007 at 17:13. |
|
18th March 2007, 17:33 | #71 | Link |
Registered User
Join Date: Sep 2006
Posts: 390
|
Ok. Compile and run this one on the PS3 and see what happens. If you only get a bunch of zeroes (including the last ones) then timing is unlikely to be the issue...
aacstiny (with some buffer waiting stuff) arnezami PS. Just for the record: you really do need kernel 2.6.20 but I guess you have that. Last edited by arnezami; 18th March 2007 at 18:45. |
19th March 2007, 04:45 | #72 | Link | |
Registered User
Join Date: Jan 2007
Posts: 20
|
Quote:
Doesn't use kernel 2.6.20 because I can't compile it. (not lot of experience compiling linux kernel however)... With kernel 2.6.16 with ntfs and udf 2.5 patch here are the results: - without a blu-ray disk: Sending report key command: A40000000000000200003F00 Invalidation AGID 0. Result: 0 Sending report key command: A40000000000000200007F00 Invalidation AGID 1. Result: 0 Sending report key command: A4000000000000020000BF00 Invalidation AGID 2. Result: 0 Sending report key command: A4000000000000020000FF00 Invalidation AGID 3. Result: 0 Sending report key command: A40000000000000200080000 Returning buffer from report agid command: 0FFD9F8000000000 0FFD9F8000000000 And the last line repeat itself until I hit ctrl-c. With Casino royale: Sending report key command: A40000000000000200003F00 Invalidation AGID 0. Result: 0 Sending report key command: A40000000000000200007F00 Invalidation AGID 1. Result: 0 Sending report key command: A4000000000000020000BF00 Invalidation AGID 2. Result: 0 Sending report key command: A4000000000000020000FF00 Invalidation AGID 3. Result: 0 Sending report key command: A40000000000000200080000 Returning buffer from report agid command: 0000000000000000 0000000000000000 And the last line repeat itself also. Maybe the 2.6.20 kernel will return something different. If someone has been able to compile it, even without the udf 2.5 patch, please post a detail procedure, so I can redo the test. |
|
19th March 2007, 07:30 | #73 | Link |
Registered User
Join Date: Sep 2006
Posts: 390
|
Ok. Has anybody been able to run any program released here with the 2.6.20 kernel on the PS3? The 2.6.20 enables PS3 support (including some hypervisor stuff). I don't think all that is in the udf patch alone. So until somebody is capable of compiling the (important parts of the) kernel I don't think its useful to go on trying and testing programs with the PS3. Although I'm really not sure (this is not my thing).
What needs to be done (not by me) is this: somebody with a PS3 and some programming/linux experience should make sure at least one ioctl command works properly on the PS3. Until then I'm going to concentrate on something else. arnezami @woodspire: please don't use ctrl-c. It will stop after 200 tries and will give a little bit more info after that. The non-zero value with tray no disc is interesting though (although probably trash). Please let it run longer too. Last edited by arnezami; 19th March 2007 at 07:59. |
19th March 2007, 23:43 | #74 | Link |
Registered User
Join Date: Jan 2007
Posts: 20
|
First of all, I read somewhere that kernel 2.6.20 cannot boot yet on the PS3.
The only kernel that I can use are provided by YDL because they contain sony patches. (kernel 2.6.16 and 2.6.17) I was able to compile the 2.6.17 kernel but it didn't boot up the PS3. With the kernel 2.6.16, I was able to recompile it with the udf 2.5 patch and it can boot. Secondly, I did 6 test with the accstiny program. 2th and 6th were without a disk. All the other tests were with a disk (casino royale) results: 1- Sending report key command: A40000000000000200003F00 Invalidation AGID 0. Result: 0 Sending report key command: A40000000000000200007F00 Invalidation AGID 1. Result: 0 Sending report key command: A4000000000000020000BF00 Invalidation AGID 2. Result: 0 Sending report key command: A4000000000000020000FF00 Invalidation AGID 3. Result: 0 Sending report key command: A40000000000000200080000 Returning buffer from report agid command: 0FF6F2400FEC0F40 0FF6F2400FEC0F40 ... All AGIDs in use, aborting. AGID: -1 2- Sending report key command: A40000000000000200003F00 Invalidation AGID 0. Result: 0 Sending report key command: A40000000000000200007F00 Invalidation AGID 1. Result: 0 Sending report key command: A4000000000000020000BF00 Invalidation AGID 2. Result: 0 Sending report key command: A4000000000000020000FF00 Invalidation AGID 3. Result: 0 Sending report key command: A40000000000000200080000 Returning buffer from report agid command: 100F507000000000 100F507000000000 ... All AGIDs in use, aborting. AGID: -1 3- Sending report key command: A40000000000000200003F00 Invalidation AGID 0. Result: 0 Sending report key command: A40000000000000200007F00 Invalidation AGID 1. Result: 0 Sending report key command: A4000000000000020000BF00 Invalidation AGID 2. Result: 0 Sending report key command: A4000000000000020000FF00 Invalidation AGID 3. Result: 0 Sending report key command: A40000000000000200080000 Returning buffer from report agid command: 0000000000000000 0000000000000000 ... All AGIDs in use, aborting. AGID: -1 4- Sending report key command: A40000000000000200003F00 Invalidation AGID 0. Result: 0 Sending report key command: A40000000000000200007F00 Invalidation AGID 1. Result: 0 Sending report key command: A4000000000000020000BF00 Invalidation AGID 2. Result: 0 Sending report key command: A4000000000000020000FF00 Invalidation AGID 3. Result: 0 Sending report key command: A40000000000000200080000 Returning buffer from report agid command: 0FF6F2400FEC0F40 0FF6F2400FEC0F40 ... All AGIDs in use, aborting. AGID: -1 5- Sending report key command: A40000000000000200003F00 Invalidation AGID 0. Result: 0 Sending report key command: A40000000000000200007F00 Invalidation AGID 1. Result: 0 Sending report key command: A4000000000000020000BF00 Invalidation AGID 2. Result: 0 Sending report key command: A4000000000000020000FF00 Invalidation AGID 3. Result: 0 Sending report key command: A40000000000000200080000 Returning buffer from report agid command: 100F507000000000 100F507000000000 ... All AGIDs in use, aborting. AGID: -1 6- Sending report key command: A40000000000000200003F00 Invalidation AGID 0. Result: 0 Sending report key command: A40000000000000200007F00 Invalidation AGID 1. Result: 0 Sending report key command: A4000000000000020000BF00 Invalidation AGID 2. Result: 0 Sending report key command: A4000000000000020000FF00 Invalidation AGID 3. Result: 0 Sending report key command: A40000000000000200080000 Returning buffer from report agid command: 0FFD9F8000000000 0FFD9F8000000000 ... All AGIDs in use, aborting. AGID: -1 Has you can see, the results are strange. Doesn't seems to be working. Also, The PS3 boots with kboot. After this boot, we can select the kernel we want to run. Maybe we should run a "sony patch free" kernel just to check. (anybody been able to boot kernel 2.6.20 on a PS3 ?) Kboot is provided in a 25 meg zip file by sony. I have never see a linux install process on the PS3 without it but I'm pretty sure that on any normal PC, either grub or lilo are used, not kboot. |
20th March 2007, 00:14 | #75 | Link |
Registered User
Join Date: Sep 2006
Posts: 390
|
Slightly improved version. It now properly cleans the buffer before sending it to the drive:
http://www.sendspace.com/file/e8uo8w |
20th March 2007, 04:04 | #76 | Link | |
Registered User
Join Date: Jan 2007
Posts: 20
|
Quote:
|
|
26th March 2007, 16:51 | #77 | Link |
Registered User
Join Date: Jan 2007
Posts: 47
|
Dear arnezami,
I got a BDAV blu-ray disc (not BDMV) with AACS protection. But the file structure of the disc is different from BDMV. The file structure is shown as below (three files only) X:\AACS\MKB_RW.info X:\AACS\AACS_av\CPSUnit00001.cci X:\AACS\AACS_av\Unit_Key.RW.inf Is possible the next version of aacskey.exe can get CPSUnitkey for BDAV disc? |
27th March 2007, 07:45 | #78 | Link | |
Registered User
Join Date: Jan 2007
Posts: 47
|
Dear All,
I try to complie aacskey.exe, but some errors was happened. error message: Quote:
|
|
27th March 2007, 17:20 | #79 | Link | |
Registered User
Join Date: Sep 2006
Posts: 390
|
Quote:
Later on I want to release the source properly. Including new features and compatabilities. BTW: PepsiLee2001 and I just checked whether the Processing Key works for an encrypted BDAV disc: it does . So we can already get the Media Key... arnezami Last edited by arnezami; 27th March 2007 at 17:22. |
|
|
|