obhq / obliteration

Experimental free and open-source PlayStation 4 kernel
https://obliteration.net
Apache License 2.0
630 stars 18 forks source link

No DT_SCE_ORIGINAL_FILENAME #349

Open VocalFan opened 1 year ago

VocalFan commented 1 year ago
++++++++++++++++++ E [00:00:00:00:002]:0x000000000000388c:kernel\src/main.rs:156
Initialize failed: cannot open /mnt/sandbox/ITEM00001_000/app0/eboot.bin -> cannot parse file info -> no DT_SCE_ORIGINAL_FILENAME.

Occurs on the Itemzflow Game Manager: https://pkg-zone.com/details/ITEM00001

ultimaweapon commented 1 year ago

I doubt if it actually boots on the actual PS4. Can you test it?

VocalFan commented 1 year ago

Uh, sir, I use Itemzflow to dump my games from my PS4... It's one of the most popular apps for homebrew.

VocalFan commented 1 year ago
__int64 __fastcall obj_get_original_filename(__int64 a1)
{
  __int64 v1; // rax
  __int64 result; // rax
  v1 = *(_QWORD *)(a1 + 392);
  if ( v1 )
    result = *(_QWORD *)(v1 + 216);
  else
    result = 0LL;
  return result;
}
ultimaweapon commented 1 year ago

The above function is unrelated to this error.

VocalFan commented 1 year ago

Good thing is that since it's homebrew, it's easy for you to test as you can download it

ultimaweapon commented 1 year ago

The problem here is why it is working on the actual console. If no DT_SCE_ORIGINAL_FILENAME the acquire_per_file_info_obj will fail and it will cause exec_self_imgact to fail too.

VocalFan commented 1 year ago

Idk, but you could see my video on 348 of it working, as I used Itemzflow to access the pkg installer and open the controller test.

VocalFan commented 1 year ago

The problem here is why it is working on the actual console. If no DT_SCE_ORIGINAL_FILENAME the acquire_per_file_info_obj will fail and it will cause exec_self_imgact to fail too.

Idk if this helps, but here's a KLog from my PS4 of me launching the app:

https://pastebin.com/ApkZ89KC

ultimaweapon commented 1 year ago

Not much useful information in the log. Do you know how to get the kernel log?

VocalFan commented 1 year ago

As far as I can tell, Klog is the best I can get.

red-prig commented 1 year ago

As far as I understand from the reverse, the SCE_ORIGINAL_FILENAME and SCE_MODULE_INFO fields are required only in cases where: SCE_HASHSZ and SCE_SYMTABSZ are present as well as hdr_e_type=ET_SCE_DYNAMIC

ultimaweapon commented 1 year ago

Thanks for the information. I suspect this one is not a dynamic executable because from what I remembered the kernel will be called acquire_per_fileinfo only when it is dynamic executable.