openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models.
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

!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