Avoid patching \texttt{\_OSI} to support a higher level of feature sets
unless absolutely required. Commonly this enables a number of hacks on APTIO
\DIFdelbegin\DIFdel{Avoid }\DIFdelend\DIFaddbegin\DIFadd{Try to avoid }\DIFaddend patching \texttt{\_OSI} to support a higher level of feature sets
\DIFdelbegin\DIFdel{unless absolutely required}\DIFdelend\DIFaddbegin\DIFadd{whenever possible}\DIFaddend. Commonly this enables a number of hacks on APTIO
firmwares, which result in the need to add more patches. Modern firmwares
generally do not need it at all, and those that do are fine with much
smaller patches.
\item
Try to avoid hacky changes like renaming \texttt{\_PRW} or \texttt{\_DSM}
smaller patches. \DIFaddbegin\DIFadd{However, laptop vendors usually rely on this method to
determine the availability of functions like modern I2C input support, thermal
adjustment and custom feature additions.
}\DIFaddend\item
\DIFaddbegin\DIFadd{Avoid patching embedded controller event }\texttt{\DIFadd{\_Qxx}}\DIFadd{just for enabling
brightness keys. The conventional process to find these keys usually involves
massive modification on DSDT and SSDTs and the debug kext is not stable on
newer systems. Please switch to built-in brightness key discovery of
To provide custom method implementation with in an SSDT, for instance,
to report functional key presses on a laptop, the original method can be replaced
with a dummy name by patching \texttt{\_Q11} with \texttt{XQ11}.
to \DIFdelbegin\DIFdel{report functional key presses on a laptop}\DIFdelend\DIFaddbegin\DIFadd{inject shutdown fix on certain computers}\DIFaddend , the original method can be
replaced with a dummy name by patching \texttt{\_\DIFdelbegin\DIFdel{Q11}\DIFdelend\DIFaddbegin\DIFadd{PTS}\DIFaddend} with \texttt{\DIFdelbegin\DIFdel{XQ11}\DIFdelend\DIFaddbegin\DIFadd{ZPTS}\DIFaddend}
\DIFaddbegin\DIFadd{and adding a callback to original method}\DIFaddend .