Compare commits

...

5 Commits

15 changed files with 287 additions and 32 deletions

View File

@ -1 +0,0 @@
https://addons.mozilla.org/firefox/downloads/file/3809748/2021.7.13/https-everywhere-eff@eff.org.xpi

View File

@ -8,6 +8,7 @@ preset=`rm .version; make .version`
include .version include .version
PROFILE_VERSION=$(MAJOR).$(MINOR).$(BUILD) PROFILE_VERSION=$(MAJOR).$(MINOR).$(BUILD)
OS=`uname -s | tr '[:upper:]' '[:lower:]'`
all: .version install.exe all: .version install.exe
@ -34,7 +35,7 @@ help: .version
@echo "$(MAJOR).$(MINOR).$(BUILD)" @echo "$(MAJOR).$(MINOR).$(BUILD)"
@echo "$(preset)" @echo "$(preset)"
prep: profile.tgz app-profile.tgz profile build/licenses build/I2P build/I2P/config launchers prep: profile.tgz app-profile.tgz build/licenses build/I2P build/I2P/config launchers
cp src/nsis/*.nsi build cp src/nsis/*.nsi build
cp src/nsis/*.nsh build cp src/nsis/*.nsh build
cp src/icons/*.ico build cp src/icons/*.ico build
@ -92,12 +93,18 @@ build/licenses: build
unix2dos build/licenses/LICENSE.index unix2dos build/licenses/LICENSE.index
clean: clean:
rm -rf build app-profile-*.tgz profile-*.tgz I2P-Profile-Installer-*.exe *.deb src/I2P/config *.su3 .version rm -rf build app-profile-*.tgz profile-*.tgz I2P-Profile-Installer-*.exe *.deb src/I2P/config/* *.su3 .version
build: build:
@echo "creating build directory" @echo "creating build directory"
mkdir -p build mkdir -p build
portable-profile: .version I2P build/I2P
make profile.tgz
cp -rv build/profile build/portable-profile-$(OS)
cp src/win/i2pbrowser.bat build/portable-profile-$(OS)
cp src/win/i2pbrowser-private.bat build/portable-profile-$(OS)
profile: build/profile/user.js build/profile/prefs.js build/profile/bookmarks.html build/profile/storage-sync.sqlite copy-xpi profile: build/profile/user.js build/profile/prefs.js build/profile/bookmarks.html build/profile/storage-sync.sqlite copy-xpi
profile.tgz: .version profile profile.tgz: .version profile
@ -124,6 +131,13 @@ copy-xpi: build/NoScript.xpi build/HTTPSEverywhere.xpi build/i2ppb@eyedeekay.git
cp build/HTTPSEverywhere.xpi "build/profile/extensions/https-everywhere-eff@eff.org.xpi" cp build/HTTPSEverywhere.xpi "build/profile/extensions/https-everywhere-eff@eff.org.xpi"
cp build/i2ppb@eyedeekay.github.io.xpi build/profile/extensions/i2ppb@eyedeekay.github.io.xpi cp build/i2ppb@eyedeekay.github.io.xpi build/profile/extensions/i2ppb@eyedeekay.github.io.xpi
portable-app-profile: .version I2P build/I2P
make app-profile.tgz
cp -rv build/app-profile build/portable-app-profile-$(OS)
cp src/win/i2pbrowser.bat build/portable-app-profile-$(OS)
cp src/win/i2pbrowser-private.bat build/portable-app-profile-$(OS)
cp src/win/i2pconfig.bat build/portable-app-profile-$(OS)
app-profile: .version build/app-profile/user.js build/app-profile/prefs.js build/app-profile/chrome/userChrome.css build/app-profile/bookmarks.html build/app-profile/storage-sync.sqlite copy-app-xpi app-profile: .version build/app-profile/user.js build/app-profile/prefs.js build/app-profile/chrome/userChrome.css build/app-profile/bookmarks.html build/app-profile/storage-sync.sqlite copy-app-xpi
app-profile.tgz: app-profile app-profile.tgz: app-profile

View File

@ -1 +0,0 @@
https://addons.mozilla.org/firefox/downloads/file/3534184/11.2.11/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi

View File

@ -93,6 +93,10 @@ with `sudo service i2p start` then you can run the script:
Including a jpackaged I2P Router(EXPERIMENTAL) Including a jpackaged I2P Router(EXPERIMENTAL)
---------------------------------------------- ----------------------------------------------
It is strongly advised that you use an up-to-date JDK 17 to build your
jpackage! Releases will be built with an up-to-date OpenJDK LTS. Builds occur
on a Windows 10 laptop, hashed, and transferred to a Linux laptop for signing.
In order to include a jpackaged(dependency-free) I2P router in the Profile In order to include a jpackaged(dependency-free) I2P router in the Profile
Bundle you will need to build the jpackaged I2P router as an "App Image" on Bundle you will need to build the jpackaged I2P router as an "App Image" on
a Windows system and place it into a directory called `I2P` in your `i2p.firefox` a Windows system and place it into a directory called `I2P` in your `i2p.firefox`

View File

@ -1 +0,0 @@
https://addons.mozilla.org/firefox/downloads/file/3821635/0.112.1/i2ppb@eyedeekay.github.io.xpi

View File

@ -26,7 +26,13 @@ import static net.i2p.update.UpdateType.*;
*/ */
public class WinLauncher { public class WinLauncher {
private static WindowsUpdatePostProcessor wupp = new WindowsUpdatePostProcessor(); private static WindowsUpdatePostProcessor wupp = new WindowsUpdatePostProcessor();
private static boolean portable;
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
for (int i = 0; i < args.length; i++) {
if (args[i] == "portable") {
portable = true;
}
}
File programs = wupp.selectProgramFile(); File programs = wupp.selectProgramFile();
if (!programs.exists()) if (!programs.exists())
programs.mkdirs(); programs.mkdirs();
@ -89,7 +95,7 @@ public class WinLauncher {
} }
private static File selectHome() { //throws Exception { private static File selectHome() { //throws Exception {
if (SystemVersion.isWindows()) { if (SystemVersion.isWindows() && !portable) {
File home = new File(System.getProperty("user.home")); File home = new File(System.getProperty("user.home"));
File appData = new File(home, "AppData"); File appData = new File(home, "AppData");
File local = new File(appData, "Local"); File local = new File(appData, "Local");
@ -100,7 +106,7 @@ public class WinLauncher {
} else { } else {
File jrehome = new File(System.getProperty("java.home")); File jrehome = new File(System.getProperty("java.home"));
File programs = new File(jrehome.getParentFile().getParentFile(), ".i2p"); File programs = new File(jrehome.getParentFile().getParentFile(), ".i2p");
System.out.println("Linux portable jpackage wrapper started, using: " + programs + " as base config"); System.out.println("portable jpackage wrapper started, using: " + programs + " as base config");
return programs.getAbsoluteFile(); return programs.getAbsoluteFile();
} }
} }

View File

@ -0,0 +1,11 @@
should_publish=false
proxy_host=127.0.0.1
proxy_port=4444
update_delay=1
log=../log/addrbook_log.txt
last_modified=../log/addrbook_last_modified.txt
etags=../log/addrbook_etags.txt
subscriptions=subscriptions.txt
local_addressbook=userhosts.txt
router_addressbook=../hosts.txt
published_addressbook=../eepsite/hosts.txt

View File

@ -0,0 +1,15 @@
clientApp.0.main=net.i2p.router.web.RouterConsoleRunner
clientApp.0.name=I2P Router Console
clientApp.0.args=7657 127.0.0.1 ./webapps/
clientApp.0.delay=0
clientApp.0.startOnLoad=true
clientApp.1.main=net.i2p.i2ptunnel.TunnelControllerGroup
clientApp.1.name=Application tunnels
clientApp.1.args=i2ptunnel.config
clientApp.1.delay=120
clientApp.1.startOnLoad=true
clientApp.2.main=net.i2p.apps.systray.UrlLauncher
clientApp.2.name=Open Router Console in web browser at startup
clientApp.2.args=http://127.0.0.1:7657/index.jsp
clientApp.2.delay=15
clientApp.2.startOnLoad=true

View File

@ -0,0 +1,119 @@
tunnel.0.description=HTTP proxy for browsing eepsites and the web
tunnel.0.i2cpHost=127.0.0.1
tunnel.0.i2cpPort=7654
tunnel.0.interface=127.0.0.1
tunnel.0.listenPort=4444
tunnel.0.name=I2P HTTP Proxy
tunnel.0.option.i2cp.closeIdleTime=1800000
tunnel.0.option.i2cp.closeOnIdle=false
tunnel.0.option.i2cp.delayOpen=false
tunnel.0.option.i2cp.newDestOnResume=false
tunnel.0.option.i2cp.reduceIdleTime=900000
tunnel.0.option.i2cp.reduceOnIdle=false
tunnel.0.option.i2cp.reduceQuantity=1
tunnel.0.option.i2p.streaming.connectDelay=1000
tunnel.0.option.inbound.backupQuantity=1
tunnel.0.option.inbound.length=2
tunnel.0.option.inbound.lengthVariance=0
tunnel.0.option.inbound.nickname=shared clients
tunnel.0.option.inbound.quantity=2
tunnel.0.option.outbound.backupQuantity=1
tunnel.0.option.outbound.length=2
tunnel.0.option.outbound.lengthVariance=0
tunnel.0.option.outbound.nickname=shared clients
tunnel.0.option.outbound.quantity=2
tunnel.0.option.persistentClientKey=false
tunnel.0.proxyList=false.i2p,blue.proxynet.i2p
tunnel.0.sharedClient=true
tunnel.0.startOnLoad=true
tunnel.0.type=httpclient
tunnel.1.description=IRC proxy to access the anonymous IRC network
tunnel.1.i2cpHost=127.0.0.1
tunnel.1.i2cpPort=7654
tunnel.1.interface=127.0.0.1
tunnel.1.listenPort=6668
tunnel.1.name=IRC Proxy
tunnel.1.option.i2cp.closeIdleTime=1200000
tunnel.1.option.i2cp.closeOnIdle=false
tunnel.1.option.i2cp.delayOpen=true
tunnel.1.option.i2cp.newDestOnResume=false
tunnel.1.option.i2cp.reduceIdleTime=600000
tunnel.1.option.i2cp.reduceOnIdle=true
tunnel.1.option.i2cp.reduceQuantity=1
tunnel.1.option.i2p.streaming.connectDelay=1000
tunnel.1.option.inbound.backupQuantity=0
tunnel.1.option.inbound.length=2
tunnel.1.option.inbound.lengthVariance=0
tunnel.1.option.inbound.nickname=IRC Proxy
tunnel.1.option.inbound.quantity=2
tunnel.1.option.outbound.backupQuantity=0
tunnel.1.option.outbound.length=2
tunnel.1.option.outbound.lengthVariance=0
tunnel.1.option.outbound.nickname=IRC Proxy
tunnel.1.option.outbound.quantity=2
tunnel.1.option.persistentClientKey=false
tunnel.1.privKeyFile=i2ptunnel1-privKeys.dat
tunnel.1.sharedClient=false
tunnel.1.startOnLoad=true
tunnel.1.targetDestination=irc.postman.i2p,irc.freshcoffee.i2p
tunnel.1.type=ircclient
tunnel.2.description=smtp server
tunnel.2.i2cpHost=127.0.0.1
tunnel.2.i2cpPort=7654
tunnel.2.interface=127.0.0.1
tunnel.2.listenPort=7659
tunnel.2.name=smtp.postman.i2p
tunnel.2.option.i2cp.closeIdleTime=1800000
tunnel.2.option.i2cp.closeOnIdle=false
tunnel.2.option.i2cp.delayOpen=true
tunnel.2.option.i2cp.newDestOnResume=false
tunnel.2.option.i2cp.reduceIdleTime=900000
tunnel.2.option.i2cp.reduceOnIdle=true
tunnel.2.option.i2cp.reduceQuantity=1
tunnel.2.option.i2p.streaming.connectDelay=1000
tunnel.2.option.inbound.backupQuantity=1
tunnel.2.option.inbound.length=2
tunnel.2.option.inbound.lengthVariance=0
tunnel.2.option.inbound.nickname=shared clients
tunnel.2.option.inbound.quantity=2
tunnel.2.option.outbound.backupQuantity=1
tunnel.2.option.outbound.length=2
tunnel.2.option.outbound.lengthVariance=0
tunnel.2.option.outbound.nickname=shared clients
tunnel.2.option.outbound.quantity=2
tunnel.2.option.persistentClientKey=false
tunnel.2.privKeyFile=i2ptunnel4-privKeys.dat
tunnel.2.sharedClient=true
tunnel.2.startOnLoad=true
tunnel.2.targetDestination=smtp.postman.i2p
tunnel.2.type=client
tunnel.3.description=pop3 server
tunnel.3.i2cpHost=127.0.0.1
tunnel.3.i2cpPort=7654
tunnel.3.interface=127.0.0.1
tunnel.3.listenPort=7660
tunnel.3.name=pop3.postman.i2p
tunnel.3.option.i2cp.closeIdleTime=1800000
tunnel.3.option.i2cp.closeOnIdle=false
tunnel.3.option.i2cp.delayOpen=false
tunnel.3.option.i2cp.newDestOnResume=false
tunnel.3.option.i2cp.reduceIdleTime=900000
tunnel.3.option.i2cp.reduceOnIdle=true
tunnel.3.option.i2cp.reduceQuantity=1
tunnel.3.option.i2p.streaming.connectDelay=1000
tunnel.3.option.inbound.backupQuantity=1
tunnel.3.option.inbound.length=2
tunnel.3.option.inbound.lengthVariance=0
tunnel.3.option.inbound.nickname=shared clients
tunnel.3.option.inbound.quantity=2
tunnel.3.option.outbound.backupQuantity=1
tunnel.3.option.outbound.length=2
tunnel.3.option.outbound.lengthVariance=0
tunnel.3.option.outbound.nickname=shared clients
tunnel.3.option.outbound.quantity=2
tunnel.3.option.persistentClientKey=false
tunnel.3.privKeyFile=i2ptunnel5-privKeys.dat
tunnel.3.sharedClient=true
tunnel.3.startOnLoad=true
tunnel.3.targetDestination=pop.postman.i2p
tunnel.3.type=client

View File

@ -0,0 +1,10 @@
logger.format=d p [t] c: m
logger.dateFormat=HH:mm:ss.SSS
logger.displayOnScreen=TRUE
logger.logFileName=logs/log-#.txt
logger.logFileSize=10m
logger.logRotationLimit=2
logger.defaultLevel=WARN
logger.minimumOnScreenLevel=CRIT
logger.consoleBufferSize=20
# log limit overrides:

View File

@ -0,0 +1,27 @@
# NOTE: This I2P config file must use UTF-8 encoding
i2np.bandwidth.inboundBurstKBytes=22520
i2np.bandwidth.inboundBurstKBytesPerSecond=128
i2np.bandwidth.inboundKBytesPerSecond=128
i2np.bandwidth.outboundBurstKBytes=22520
i2np.bandwidth.outboundBurstKBytesPerSecond=128
i2np.bandwidth.outboundKBytesPerSecond=128
i2np.laptopMode=false
i2np.ntcp.autoip=true
i2np.ntcp.enable=true
i2np.udp.addressSources=local,upnp,ssu
i2np.upnp.enable=true
i2p.dir.config=.
prng.buffers=16
router.dynamicKeys=false
router.maxParticipatingTunnels=150
router.newsRefreshFrequency=86400000
router.sharePercentage=80
router.updatePolicy=notify
router.updateProxyHost=127.0.0.1
router.updateProxyPort=4444
router.updateThroughProxy=true
router.updateURL=http://echelon.i2p/i2p/i2pupdate.sud,http://stats.i2p/i2p/i2pupdate.sud,http://www.i2p2.i2p/_static/i2pupdate.sud,http://update.postman.i2p/i2pupdate.sud
router.updateUnsigned=false
routerconsole.lang=en
routerconsole.summaryRefresh=30
time.disabled=false

View File

@ -0,0 +1,14 @@
# NOTE: The system tray control currently only works on Windows and KDE.
# The filename (with full path if needed) of the browser to be used by the
# system tray control to launch the router console. You may also append command
# line parameters like so:
#
# browser=/usr/bin/opera -newpage
#
# If you set this value to 'default', systray will attempt to identify and use
# your system's default browser.
browser=default
# The port the router console listens on.
port=7657

View File

@ -0,0 +1,4 @@
# NOTE: This I2P config file must use UTF-8 encoding
webapps.addressbook.startOnLoad=true
webapps.i2ptunnel.startOnLoad=true
webapps.routerconsole.startOnLoad=true

View File

@ -2,40 +2,57 @@
if exist "%ProgramFiles%\I2P\" ( if exist "%ProgramFiles%\I2P\" (
set "I2PPath=%ProgramFiles%\I2P\" set "I2PPath=%ProgramFiles%\I2P\"
set "I2PProfilePath=%ProgramFiles%\I2P\I2PBrowser-Launcher\firefox.profile.i2p"
if exist "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\" (
echo "profile is configured, updating extensions"
xcopy /s /i /y "%I2PProfilePath%\extensions" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\extensions"
) else (
echo "configuring profile"
xcopy /s /i /y "%I2PProfilePath%" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p"
)
set "I2PProfilePath=%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p"
) )
if exist "%ProgramFiles(x86)%\I2P" { if exist "%ProgramFiles(x86)%\I2P\" {
set "I2PPath=%ProgramFiles(x86)%\I2P" set "I2PPath=%ProgramFiles(x86)%\I2P"
set "I2PProfilePath=%ProgramFiles%\I2P\I2PBrowser-Launcher\firefox.profile.i2p"
if exist "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\" (
echo "profile is configured, updating extensions"
xcopy /s /i /y "%I2PProfilePath%\extensions" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\extensions"
) else (
echo "configuring profile"
xcopy /s /i /y "%I2PProfilePath%" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p"
)
set "I2PProfilePath=%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p"
} }
if exist "%ProgramFiles%\I2P\jpackaged" ( set "scriptPath=%~dp0"
start "i2p" /D "%LOCALAPPDATA%\I2P" "%I2PPath%\i2p.exe" if exist "%scriptPath%\I2P\" (
set "I2PPath=%scriptPath%\I2P\"
set "I2PProfilePath=%scriptPath%\"
set "PortableArg=portable"
)
if exist "%I2PPath%\jpackaged" (
start "i2p" /D "%LOCALAPPDATA%\I2P" "%I2PPath%\i2p.exe" "%PortableArg%"
) else ( ) else (
start "i2p" "%I2PPath%\i2p.exe" start "i2p" "%I2PPath%\i2p.exe"
) )
timeout /t 3 timeout /t 3
if exist "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\" (
echo "profile is configured, updating extensions"
xcopy /s /i /y "%ProgramFiles%\I2P\I2PBrowser-Launcher\firefox.profile.i2p\extensions" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\extensions"
) else (
echo "configuring profile"
xcopy /s /i /y "%ProgramFiles%\I2P\I2PBrowser-Launcher\firefox.profile.i2p" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p"
)
if exist "%USERPROFILE%/Desktop/Tor Browser/Browser/firefox.exe" ( if exist "%USERPROFILE%/Desktop/Tor Browser/Browser/firefox.exe" (
start "i2pbrowser" "%USERPROFILE%/Desktop/Tor Browser/Browser/firefox.exe" -no-remote -profile "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p" -private-window about:blank start "i2pbrowser" "%USERPROFILE%/Desktop/Tor Browser/Browser/firefox.exe" -no-remote -profile "%I2PProfilePath%" -private-window about:blank
exit exit
) )
if exist "%USERPROFILE%/OneDrive/Desktop/Tor Browser/Browser/firefox.exe" ( if exist "%USERPROFILE%/OneDrive/Desktop/Tor Browser/Browser/firefox.exe" (
start "i2pbrowser" "%USERPROFILE%/OneDrive/Desktop/Tor Browser/Browser/firefox.exe" -no-remote -profile "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p" -private-window about:blank start "i2pbrowser" "%USERPROFILE%/OneDrive/Desktop/Tor Browser/Browser/firefox.exe" -no-remote -profile "%I2PProfilePath%" -private-window about:blank
exit exit
) )
if exist "%ProgramFiles%\Mozilla Firefox\firefox.exe" ( if exist "%ProgramFiles%\Mozilla Firefox\firefox.exe" (
start "i2pbrowser" "%ProgramFiles%\Mozilla Firefox\firefox.exe" -no-remote -profile "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p" -private-window about:blank start "i2pbrowser" "%ProgramFiles%\Mozilla Firefox\firefox.exe" -no-remote -profile "%I2PProfilePath%" -private-window about:blank
exit exit
) )

View File

@ -2,28 +2,45 @@
if exist "%ProgramFiles%\I2P\" ( if exist "%ProgramFiles%\I2P\" (
set "I2PPath=%ProgramFiles%\I2P\" set "I2PPath=%ProgramFiles%\I2P\"
set "I2PProfilePath=%ProgramFiles%\I2P\I2PBrowser-Launcher\firefox.profile.i2p"
if exist "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\" (
echo "profile is configured, updating extensions"
xcopy /s /i /y "%I2PProfilePath%\extensions" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\extensions"
) else (
echo "configuring profile"
xcopy /s /i /y "%I2PProfilePath%" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p"
)
set "I2PProfilePath=%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p"
) )
if exist "%ProgramFiles(x86)%\I2P" { if exist "%ProgramFiles(x86)%\I2P\" {
set "I2PPath=%ProgramFiles(x86)%\I2P" set "I2PPath=%ProgramFiles(x86)%\I2P"
set "I2PProfilePath=%ProgramFiles%\I2P\I2PBrowser-Launcher\firefox.profile.i2p"
if exist "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\" (
echo "profile is configured, updating extensions"
xcopy /s /i /y "%I2PProfilePath%\extensions" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\extensions"
) else (
echo "configuring profile"
xcopy /s /i /y "%I2PProfilePath%" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p"
)
set "I2PProfilePath=%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p"
} }
if exist "%ProgramFiles%\I2P\jpackaged" ( set "scriptPath=%~dp0"
start "i2p" /D "%LOCALAPPDATA%\I2P" "%I2PPath%\i2p.exe" if exist "%scriptPath%\I2P\" (
set "I2PPath=%scriptPath%\I2P\"
set "I2PProfilePath=%scriptPath%\"
set "PortableArg=portable"
)
if exist "%I2PPath%\jpackaged" (
start "i2p" /D "%LOCALAPPDATA%\I2P" "%I2PPath%\i2p.exe" "%PortableArg%"
) else ( ) else (
start "i2p" "%I2PPath%\i2p.exe" start "i2p" "%I2PPath%\i2p.exe"
) )
timeout /t 3 timeout /t 3
if exist "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\" (
echo "profile is configured, updating extensions"
xcopy /s /i /y "%ProgramFiles%\I2P\I2PBrowser-Launcher\firefox.profile.i2p\extensions" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\extensions"
) else (
echo "configuring profile"
xcopy /s /i /y "%ProgramFiles%\I2P\I2PBrowser-Launcher\firefox.profile.i2p" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p"
)
if exist "%USERPROFILE%/Desktop/Tor Browser/Browser/firefox.exe" ( if exist "%USERPROFILE%/Desktop/Tor Browser/Browser/firefox.exe" (
start "i2pbrowser" "%USERPROFILE%/Desktop/Tor Browser/Browser/firefox.exe" -no-remote -profile "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p" -url %1 start "i2pbrowser" "%USERPROFILE%/Desktop/Tor Browser/Browser/firefox.exe" -no-remote -profile "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p" -url %1
exit exit