You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
212 lines
7.7 KiB
212 lines
7.7 KiB
!define J2534_Reg_Path "Software\PassThruSupport.04.04\comma.ai - panda"
|
|
!define Install_Name "panda J2534 Drivers"
|
|
|
|
;NOTE! The panda software requires a VC runtime to be installed in order to work.
|
|
;This installer must be bundled with the appropriate runtime installer, and have
|
|
;the installation registry key set so the installer can tell if the runtime is
|
|
;already installed. Copy vscruntimeinfo.nsh.sample to vscruntimeinfo.nsh and edit
|
|
;it for your version of Visual Studio.
|
|
!include "redist\vscruntimeinfo.nsh"
|
|
|
|
;--------------------------------
|
|
;Include Modern UI
|
|
!include "MUI2.nsh"
|
|
!include "x64.nsh"
|
|
|
|
!define MUI_ICON "panda.ico"
|
|
;NSIS is ignoring the unicon unless it is the same as the normal icon
|
|
;!define MUI_UNICON "panda_remove.ico"
|
|
|
|
;Properly display all languages (Installer will not work on Windows 95, 98 or ME!)
|
|
Unicode true
|
|
|
|
# Set the installer display name
|
|
Name "panda Driver"
|
|
|
|
# set the name of the installer
|
|
Outfile "panda install.exe"
|
|
|
|
; The default installation directory
|
|
InstallDir $PROGRAMFILES\comma.ai\panda
|
|
|
|
; Request application privileges for UAC
|
|
RequestExecutionLevel admin
|
|
|
|
; Registry key to check for directory (so if you install again, it will
|
|
; overwrite the old one automatically)
|
|
InstallDirRegKey HKLM "SOFTWARE\${Install_Name}" "Install_Dir"
|
|
|
|
;--------------------------------
|
|
; Pages
|
|
!insertmacro MUI_PAGE_WELCOME
|
|
!insertmacro MUI_PAGE_LICENSE "..\..\LICENSE"
|
|
!insertmacro MUI_PAGE_COMPONENTS
|
|
!insertmacro MUI_PAGE_DIRECTORY
|
|
!insertmacro MUI_PAGE_INSTFILES
|
|
|
|
!insertmacro MUI_UNPAGE_CONFIRM
|
|
!insertmacro MUI_UNPAGE_INSTFILES
|
|
|
|
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
|
|
|
|
; -------------------------------------------------------------------------------------------------
|
|
; Additional info (will appear in the "details" tab of the properties window for the installer)
|
|
|
|
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "panda OBD-II adapter"
|
|
VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" ""
|
|
VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "comma.ai"
|
|
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "Application released under the MIT license"
|
|
;VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "© ${PRODUCT_NAME} Team"
|
|
;VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Jessy Exum"
|
|
;VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${PRODUCT_VERSION}"
|
|
VIProductVersion "1.0.0.0"
|
|
|
|
;--------------------------------
|
|
; Install Sections
|
|
Section "panda driver (required)"
|
|
|
|
SectionIn RO
|
|
|
|
SetOutPath "$INSTDIR"
|
|
|
|
|
|
;If the visual studio version this project is compiled with changes, this section
|
|
;must be revisited. The registry key must be changed, and the VS redistributable
|
|
;binary must be updated to the VS version used.
|
|
ClearErrors
|
|
ReadRegStr $0 HKLM ${VCRuntimeRegKey} "Version"
|
|
${If} ${Errors}
|
|
DetailPrint "Installing Visual Studio C Runtime..."
|
|
File "${VCRuntimeSetupPath}\${VCRuntimeSetupFile}"
|
|
ExecWait '"$INSTDIR\${VCRuntimeSetupFile}" /passive /norestart'
|
|
${Else}
|
|
DetailPrint "Visual Studio C Runtime already installed."
|
|
${EndIf}
|
|
|
|
;Remove the now unnecessary runtime installer.
|
|
Delete "$INSTDIR\${VCRuntimeSetupFile}"
|
|
|
|
;Do the rest of the install
|
|
SetOutPath "$INSTDIR\driver"
|
|
|
|
; The inf file works for both 32 and 64 bit.
|
|
File "Debug_x86\panda Driver Package\panda.inf"
|
|
File "Debug_x86\panda Driver Package\panda.cat"
|
|
${DisableX64FSRedirection}
|
|
nsExec::ExecToLog '"$SYSDIR\PnPutil.exe" /a "$INSTDIR\driver\panda.inf"'
|
|
${EnableX64FSRedirection}
|
|
|
|
SetOutPath $SYSDIR
|
|
|
|
File Release_x86\panda.dll
|
|
|
|
${If} ${RunningX64}
|
|
${DisableX64FSRedirection}
|
|
;Note that the x64 VS redistributable is not installed to prevent bloat.
|
|
;If you are the rare person who uses the 64 bit raw panda driver, please
|
|
;install the correct x64 VS runtime manually.
|
|
File Release_x64\panda.dll
|
|
${EnableX64FSRedirection}
|
|
${EndIf}
|
|
|
|
; Write the installation path into the registry
|
|
WriteRegStr HKLM "SOFTWARE\panda J2534 Drivers" "Install_Dir" "$INSTDIR"
|
|
|
|
; Write the uninstall keys for Windows
|
|
;WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "DisplayVersion" ""
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "DisplayIcon" '"$SYSDIR\panda.dll",0'
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "DisplayName" "panda J2534 Drivers"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "Publisher" "comma.ai"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "URLInfoAbout" "https://github.com/commaai/panda/"
|
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "NoModify" 1
|
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "NoRepair" 1
|
|
|
|
SetOutPath $INSTDIR
|
|
WriteUninstaller "uninstall.exe"
|
|
|
|
SectionEnd
|
|
|
|
Section "panda devel lib/header"
|
|
|
|
SetOutPath "$INSTDIR\devel"
|
|
File panda\panda.h
|
|
|
|
SetOutPath "$INSTDIR\devel\x86"
|
|
File Release_x86\panda.lib
|
|
|
|
SetOutPath "$INSTDIR\devel\x64"
|
|
File Release_x64\panda.lib
|
|
|
|
SectionEnd
|
|
|
|
Section "J2534 Driver"
|
|
|
|
SetOutPath $INSTDIR
|
|
|
|
File Release_x86\pandaJ2534_0404_32.dll
|
|
|
|
SetRegView 32
|
|
WriteRegDWORD HKLM "${J2534_Reg_Path}" "CAN" 00000001
|
|
WriteRegStr HKLM "${J2534_Reg_Path}" "FunctionLibrary" "$INSTDIR\pandaJ2534_0404_32.dll"
|
|
WriteRegDWORD HKLM "${J2534_Reg_Path}" "ISO15765" 00000001
|
|
WriteRegDWORD HKLM "${J2534_Reg_Path}" "J1850VPW" 00000000
|
|
WriteRegDWORD HKLM "${J2534_Reg_Path}" "SCI_A_ENGINE" 00000000
|
|
WriteRegDWORD HKLM "${J2534_Reg_Path}" "SCI_A_TRANS" 00000000
|
|
WriteRegDWORD HKLM "${J2534_Reg_Path}" "SCI_B_ENGINE" 00000000
|
|
WriteRegDWORD HKLM "${J2534_Reg_Path}" "SCI_B_TRANS" 00000000
|
|
WriteRegDWORD HKLM "${J2534_Reg_Path}" "J1850PWM" 00000000
|
|
WriteRegDWORD HKLM "${J2534_Reg_Path}" "ISO9141" 00000000
|
|
WriteRegDWORD HKLM "${J2534_Reg_Path}" "ISO14230" 00000001
|
|
WriteRegStr HKLM "${J2534_Reg_Path}" "Name" "panda"
|
|
WriteRegStr HKLM "${J2534_Reg_Path}" "Vendor" "comma.ai"
|
|
WriteRegStr HKLM "${J2534_Reg_Path}" "ConfigApplication" ""
|
|
DetailPrint "Registered J2534 Driver"
|
|
|
|
SectionEnd
|
|
|
|
;--------------------------------
|
|
; Uninstaller
|
|
Section "Uninstall"
|
|
|
|
; Removing the inf file for winusb is not easy to do.
|
|
; The best solution I can find is parsing the output
|
|
; of the pnputil.exe /e command to find the oem#.inf
|
|
; file that lists comma.ai as the provider. Not sure
|
|
; if Microsoft wants these inf files to be removed.
|
|
; Consider https://blog.sverrirs.com/2015/12/creating-windows-installer-and.html
|
|
; These lines just remove the inf backups.
|
|
Delete "$INSTDIR\driver\panda.inf"
|
|
Delete "$INSTDIR\driver\panda.cat"
|
|
RMDir "$INSTDIR\driver"
|
|
|
|
; Remove WinUSB driver library
|
|
Delete $SYSDIR\panda.dll
|
|
${If} ${RunningX64}
|
|
${DisableX64FSRedirection}
|
|
Delete $SYSDIR\panda.dll
|
|
${EnableX64FSRedirection}
|
|
${EndIf}
|
|
|
|
; Remove devel files
|
|
Delete "$INSTDIR\devel\x86\panda.lib"
|
|
RMDir "$INSTDIR\devel\x86"
|
|
Delete "$INSTDIR\devel\x64\panda.lib"
|
|
RMDir "$INSTDIR\devel\x64"
|
|
Delete "$INSTDIR\devel\panda.h"
|
|
RMDir "$INSTDIR\devel"
|
|
|
|
; Remove registry keys
|
|
DeleteRegKey HKLM "${J2534_Reg_Path}"
|
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}"
|
|
DeleteRegKey HKLM "SOFTWARE\${Install_Name}"
|
|
|
|
; Remove files and uninstaller
|
|
Delete "$INSTDIR\uninstall.exe"
|
|
Delete "$INSTDIR\pandaJ2534_0404_32.dll"
|
|
|
|
; Remove directories used
|
|
RMDir "$INSTDIR"
|
|
RMDir "$PROGRAMFILES\comma.ai"
|
|
|
|
SectionEnd
|
|
|