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.
		
		
		
		
			
				
					213 lines
				
				7.7 KiB
			
		
		
			
		
	
	
					213 lines
				
				7.7 KiB
			| 
								 
											8 years ago
										 
									 | 
							
								!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
							 |