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.
 
 
 
 
 
 

214 lines
7.8 KiB

!define J2534_Reg_Path "Software\PassThruSupport.04.04\comma.ai - panda"
!define Install_Name "panda J2534 driver"
;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 "${Install_Name}"
# set the name of the installer
Outfile "${Install_Name} 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 "prerequisites"
SectionIn RO
SetOutPath "$INSTDIR"
File "panda.ico"
;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 HKCR ${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}
; Write the installation path into the registry
WriteRegStr HKLM "SOFTWARE\${Install_Name}" "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" '"$INSTDIR\panda.ico",0'
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "DisplayName" "${Install_Name}"
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 "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
Section /o "Development lib/header"
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}
SetOutPath "$INSTDIR\devel"
File panda_shared\panda.h
SetOutPath "$INSTDIR\devel\x86"
File Release_x86\panda.lib
SetOutPath "$INSTDIR\devel\x64"
File Release_x64\panda.lib
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"
Delete "$INSTDIR\panda.ico"
; Remove directories used
RMDir "$INSTDIR"
RMDir "$PROGRAMFILES\comma.ai"
SectionEnd