4981 Commits

Author SHA1 Message Date
Andrey1970
c736e4985e Docs: 2026 2026-01-24 14:37:35 +03:00
Mike Beaton
762eea6ff3 Docker: Upgrade builds to Ubuntu 24.04 and LLVM 21 2025-11-21 11:34:59 +00:00
Mike Beaton
507907a2db Docs: Fix sync changelog formatting 2025-11-19 16:32:15 +00:00
Mike Beaton
6b75efa394 Docs: Sync changelog 2025-11-19 16:30:38 +00:00
laobamac
000227e411
Improve XhciPortLimit compatibility with macOS Tahoe (#590) 2025-11-19 16:27:24 +00:00
Mike Beaton
d31ab222ae Apfs.h: Fix illegal unicode character ʼ (U+02BC) in Doxygen comment 2025-11-17 00:13:57 +00:00
vit9696
565046300f Library/OcBootManagementLib: Fix potential NULL dereference 2025-11-12 13:25:24 +03:00
Andrey1970
c3e0d33374 Bump version 2025-11-06 19:24:42 +03:00
Vitaly Cheptsov
64e3b5811e
Docs: Sync changelog 1.0.6 2025-11-02 17:46:18 +03:00
Pavel Naberezhnev
12a378c678
OpenNtfsDxe: Fixed several issues in the NTFS driver (#588)
* Incorrect EFI_FILE_PROTOCOL version

The driver implements EFI_FILE_PROTOCOL_REVISION version,
not EFI_FILE_PROTOCOL_REVISION2 version.

* Fix directory reading logic by implementing EFI_FILE_INFO cache

Problem:
 According to the UEFI specification, reading from a directory must
 return zero Size for the EFI_FILE_INFO structure when directory
 entries are exhausted. The original FileReadDir() implementation
 always returned a fixed EFI_FILE_INFO size before reporting
 end-of-directory. This caused fuzzing tests to enter an infinite
 directory iteration loop due to unexpected behavior.

Solution:
 Introduced an EFI_FILE_INFO cache with the following logic:
 1. FileReadDir() caches EFI_FILE_INFO on first read. The cache key
    combines directory path hash (with FNV-1a 64-bit hashing) and
    DirIndex value
 2. When the key matches and buffer size is sufficient:
    - Data is returned from cache
    - Cache is cleared
 3. When the key matches with insufficent buffer size:
    - Cache is preserved for subsequent retries
 4. Key mismatch triggers cache reset

Additional benefits:
 - Eliminates fixed MINIMUM_INFO_LENGTH requirement
 - FileReadDir() now requests only required buffer size

Note:
 A more elegant solution is being considered for future NTFS
 driver improvements, requiring further analysis and testing.

Links:
 FNV Hash: http://www.isthe.com/chongo/tech/comp/fnv/index.html

* Fix memory leak in FileReadDir() function

Function NtfsOppen() allocates additional memory for
file structure. After use it, need to free by call FreeFile()
function.

* Fixed invalid pointer access in ReadAttr() function

Solution:
 - Added a null check for the Current field in ReadAttr() function
 - Added validation for MFT record flags in the InitFile() function

Signed-off-by: Pavel Naberezhnev <pavelnaberezhnev@gmail.com>
2025-11-02 17:45:38 +03:00
Mike Beaton
4d84d0f9f6 Docs: Sync changelog 2025-10-24 12:20:35 +01:00
Mike Beaton
92338e4236 Docs: Sync errata 2025-10-12 11:50:32 +01:00
Vitaly Cheptsov
0cc8c81fcc
Docs: Sync changelog 2025-10-10 02:24:18 +03:00
Mike Beaton
1bf9d8f085
Utilities: Avoid multiple builds of the same object files with the same flags on full build (#584) 2025-10-10 02:22:20 +03:00
Mike Beaton
ec2713af48
OpenDuet: Fix handoff of ACPI v1.0 (#585)
This is long-standing bug, going back to the transition from
EFI to UEFI (tianore/edk to tianocore/edk2).

The default ACPI level was changed from 1.0 to 2.0, but this
code in Duet was not changed to match.

Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
2025-10-10 02:15:30 +03:00
Vitaly Cheptsov
6e20078ec5
OcAcpiLib: Use more accurate revision checking
Thanks @mhaeuser
2025-10-08 14:17:22 +03:00
Mike Beaton
aa3c8bb363 Tools: Minor fix grammar in error message 2025-10-05 10:52:09 +01:00
Pavel Naberezhnev
7897c1e039
Updated minimal EFI Event support in userspace (#577) 2025-10-01 10:48:41 +03:00
Mike Beaton
849b04fdf4
Patches: Allow DEBUG OpenShell to start with too many file systems under Mac EFI (#582)
Early Mac EFI returns EFI_INVALID_PARAMETER if storage for any single
NVRAM variable exceeds a certain size (leaves 2006 bytes for the value,
if the variable has a 4 character name). Since all of fsXX:\efi\tools\,
fsXX:\efi\boot\ and fsXX:\ are added to a CHAR16 shell `path` variable
for each file system found, the variable exceeds this limit when there
are greater than 25 file systems.

In the RELEASE shell this causes the `path` variable to get set to a
strange value. Unfortunately in the DEBUG shell it causes an ASSERT
and the shell does not start.

With this patch the DEBUG shell behaves like RELEASE shell: due to the
implementation of ShellProtocol SetEnv, when there is an error the
variable gets deleted and not recreated, thus the final path variable
only contains paths for file systems after the one which caused the
error. While this patch is not an ideal fix for the underlying problem,
it does simply recreate the longstanding behaviour of the RELEASE shell
on the same systems, and is preferable to the DEBUG shell being unusable.

Addresses https://github.com/acidanthera/bugtracker/issues/2005
2025-09-22 12:25:04 +03:00
vit9696
219e6e2fe9 Utilities/macrecovery: fix commands and build-image issues with 15+
Thanks Andrey1970!
2025-09-22 01:18:12 +03:00
Pavel Naberezhnev
d9d77331ea Added demonstration test of working DummyEvents
Signed-off-by: Pavel Naberezhnev <pavelnaberezhnev@gmail.com>
2025-09-11 14:56:26 +03:00
Pavel Naberezhnev
0d19bcd7b3 Added UserEvent functions into UEFI in userspace
Signed-off-by: Pavel Naberezhnev <pavelnaberezhnev@gmail.com>
2025-09-11 14:53:27 +03:00
Pavel Naberezhnev
e1d7b9b418 Added minimal UEFI Event subsystem support into userspace
This feature adds support for UEFI Event in userspace. The
following has been implemented:
  - The number of events if fixed
  - Event dispatching occurs through an explicit call to
    the dispatcher from UEFI Event functions
  - Event groups are not supported

Signed-off-by: Pavel Naberezhnev <pavelnaberezhnev@gmail.com>
2025-09-11 14:53:27 +03:00
vit9696
1ecaca3c7c OcCompressionLib/zlib: Fix build issues 2025-09-11 12:13:01 +03:00
vit9696
5a996a4436 Utilities/macrecovery: Add option to customise build-image image format 2025-09-11 11:57:33 +03:00
vit9696
d76d599773 OcAppleUserInterfaceThemeLib: Added background-color NVRAM variable
This allows to have grey OpenCanopy background colour and grey 10.9
EfiBoot boot screen
2025-09-11 11:56:33 +03:00
vit9696
d762689b98 Docs: Fix some typos 2025-08-21 23:02:45 +03:00
vit9696
9c0dbdd4b2 Docs: Add sample ACPI patch demonstrating table-specific replacement
Newly added example demonstrates patching RTC device supporting 2 I/O
ports which are reported as 8 I/O ports in ACPI. The patch fixes
PowerManagement crashes in e.g. 10.6 and newer in OVMF.
2025-08-21 22:29:04 +03:00
vit9696
79ea932f19 Docs: Update documentation for 10.4 and 10.5 2025-08-17 00:02:54 +03:00
Andrey1970
6884871ef8 DataBase: Updated MaximumOSVersion 2025-08-11 13:28:04 +03:00
vit9696
9afdb676d3 Docs: Explain why RebuildAppleMemoryMap is necessary before 10.7 2025-08-11 03:33:42 +03:00
Vitaly Cheptsov
86db43e07e
Docs: Sync Changelog 2025-08-10 11:07:37 +03:00
Alex James
1f6d95aedf
OcConsoleLib: Normalize console font path (#579)
OcLoadConsoleFont currently loads the specified console path from
Resources\Font\\, which can cause vault failures if vault.plist doesn't
include the duplicate path separator. Remove it to match other paths.
2025-08-10 11:04:14 +03:00
vit9696
835137c13d Utilities: Workaround shellcheck false positive 2025-08-09 19:27:09 +03:00
vit9696
7f8c15afb1 Docs: Add AppleIntel8254XEthernet sample patch for macOS 10.4 in QEMU
Prior to macOS 10.5 the logic used to interpret PHY status was wrong.
AppleIntel8254XEthernet checks PHY Specific Status register for bit 3
(Transmit Pause Enabled) presence instead of bit 10 (Link).

This patch forces PHY Specific Status register 0xac08, which means
always up.
2025-08-09 18:28:17 +03:00
vit9696
d1ebfea100 OcAfterBootCompatLib: Add some more debugging & info on Booter quirks 2025-08-07 01:38:19 +03:00
vit9696
2bc82850d1 Git: Improve LegacyBoot ignore files 2025-08-07 01:36:34 +03:00
vit9696
eca9d6b156 OcStorageLib: Increased OC_STORAGE_SAFE_PATH_MAX to 192
This is needed to Force inject longer kexts, e.g. networking:
System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/
AppleIntel8254XEthernet.kext/Contents/MacOS/AppleIntel8254XEthernet
2025-08-07 01:36:34 +03:00
vit9696
ebb55d7eee Utilities/LegacyBoot: Added EFI mode to QemuBuild.command 2025-08-07 01:36:34 +03:00
vit9696
9b92b5945f Library/OcAcpiLib: Enable RSDT/RSDP/XSDT address printing in INFO
This is useful to debug RSDP lookup failure in operating systems,
especially macOS 10.4, which needs RSDP in low memory.
2025-08-07 01:36:34 +03:00
Mike Beaton
4891b78f26 Docs: OpenVariableRuntime: Improve wording for what is included in OpenDuet
OpenDuet includes unmodified VariableRuntimeDxe. OpenVariableRuntimeDxe
is a slightly modified variant of that (see comments in header of VariableDxe.c).
2025-08-02 22:25:14 +01:00
Mike Beaton
1312e2b298 OpenVariableRuntime: Sync header comment in VariableDxe.c with code changes 2025-08-02 22:20:52 +01:00
vit9696
0195da09a1 Misc: change __FUNCTION__ to __func__ as per upstream EDK II 2025-08-03 00:02:15 +03:00
vit9696
aecd8ec66b Docs: Publish erratum for acidanthera/bugtracker#2507 2025-08-02 23:11:36 +03:00
Vitaly Cheptsov
a46a4dd7d2
Docs: Sync changelog 2025-08-02 23:05:50 +03:00
hg13
a5715fcedc
OcAppleKernelLib: Add fallback CPUFrequency in ProvideCpuInfo (#578) 2025-08-02 13:30:25 +03:00
Andrey1970
e04b9e2292 Bump version 2025-07-13 18:41:18 +03:00
Andrey1970
e8437f7377 DataBase: Updated builtin firmware versions 1.0.5 2025-06-14 20:06:04 +03:00
Andrey1970
9582ff49ed DataBase: Updated MaximumOSVersion 2025-06-14 18:23:19 +03:00
Andrey1970
46cc8bd0ab
Fixed previous 2025-06-14 17:00:09 +03:00