qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] isa-applesmc: provide OSK forwarding on Apple hosts


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v2] isa-applesmc: provide OSK forwarding on Apple hosts
Date: Fri, 22 Oct 2021 12:43:21 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.0

On 10/22/21 12:38, Vladislav Yaroshchuk wrote:
> On Apple hosts we can read AppleSMC OSK key directly from host's
> SMC and forward this value to QEMU Guest.
> 
> Usage:
> `-device isa-applesmc,hostosk=on`
> 
> Apple licence allows use and run up to two additional copies
> or instances of macOS operating within virtual operating system
> environments on each Apple-branded computer that is already running
> the Apple Software, for purposes of:
> - software development
> - testing during software development
> - using macOS Server
> - personal, non-commercial use
> 
> Guest macOS requires AppleSMC with correct OSK. The most legal
> way to pass it to the Guest is to forward the key from host SMC
> without any value exposion.
> 
> Based on http://osxbook.com/book/bonus/chapter7/tpmdrmmyth/
> 
> Signed-off-by: Vladislav Yaroshchuk <yaroshchuk2000@gmail.com>
> ---
>  hw/misc/applesmc.c | 144 ++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 143 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/misc/applesmc.c b/hw/misc/applesmc.c
> index 1b9acaf1d3..6986ab0028 100644
> --- a/hw/misc/applesmc.c
> +++ b/hw/misc/applesmc.c
> @@ -38,6 +38,10 @@
>  #include "qemu/timer.h"
>  #include "qom/object.h"
>  
> +#if defined(__APPLE__)
> +#include <IOKit/IOKitLib.h>
> +#endif
> +
>  /* #define DEBUG_SMC */
>  
>  #define APPLESMC_DEFAULT_IOBASE        0x300
> @@ -108,6 +112,7 @@ struct AppleSMCState {
>      uint8_t data_len;
>      uint8_t data_pos;
>      uint8_t data[255];
> +    char *hostosk_flag;
>      char *osk;
>      QLIST_HEAD(, AppleSMCData) data_def;
>  };
> @@ -312,9 +317,133 @@ static const MemoryRegionOps applesmc_err_io_ops = {
>      },
>  };
>  
> +#if defined(__APPLE__)
> +/* Based on http://osxbook.com/book/bonus/chapter7/tpmdrmmyth/ */

404. Instead use
https://web.archive.org/web/20200103161737/http://osxbook.com/book/bonus/chapter7/tpmdrmmyth/
?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]