├── .github └── workflows │ └── gradle.yml ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── apache-ftpserver-1.1.1-core ├── build.gradle └── src │ ├── examples │ ├── java │ │ └── org │ │ │ └── apache │ │ │ └── ftpserver │ │ │ └── examples │ │ │ ├── EmbeddingFtpServer.java │ │ │ └── ManagingUsers.java │ └── resources │ │ ├── ftpserver.jks │ │ └── spring-config │ │ ├── config-ftplets.xml │ │ ├── config-full.xml │ │ ├── config-minimal.xml │ │ └── config-typical.xml │ ├── main │ ├── java │ │ └── org │ │ │ └── apache │ │ │ └── ftpserver │ │ │ ├── ConnectionConfig.java │ │ │ ├── ConnectionConfigFactory.java │ │ │ ├── DataConnectionConfiguration.java │ │ │ ├── DataConnectionConfigurationFactory.java │ │ │ ├── DataConnectionException.java │ │ │ ├── FtpServer.java │ │ │ ├── FtpServerConfigurationException.java │ │ │ ├── FtpServerFactory.java │ │ │ ├── Version.java │ │ │ ├── command │ │ │ ├── AbstractCommand.java │ │ │ ├── Command.java │ │ │ ├── CommandFactory.java │ │ │ ├── CommandFactoryFactory.java │ │ │ ├── NotSupportedCommand.java │ │ │ └── impl │ │ │ │ ├── ABOR.java │ │ │ │ ├── ACCT.java │ │ │ │ ├── APPE.java │ │ │ │ ├── AUTH.java │ │ │ │ ├── CDUP.java │ │ │ │ ├── CWD.java │ │ │ │ ├── DELE.java │ │ │ │ ├── DefaultCommandFactory.java │ │ │ │ ├── EPRT.java │ │ │ │ ├── EPSV.java │ │ │ │ ├── FEAT.java │ │ │ │ ├── HELP.java │ │ │ │ ├── LANG.java │ │ │ │ ├── LIST.java │ │ │ │ ├── MD5.java │ │ │ │ ├── MDTM.java │ │ │ │ ├── MFMT.java │ │ │ │ ├── MKD.java │ │ │ │ ├── MLSD.java │ │ │ │ ├── MLST.java │ │ │ │ ├── MODE.java │ │ │ │ ├── NLST.java │ │ │ │ ├── NOOP.java │ │ │ │ ├── OPTS.java │ │ │ │ ├── OPTS_MLST.java │ │ │ │ ├── OPTS_UTF8.java │ │ │ │ ├── PASS.java │ │ │ │ ├── PASV.java │ │ │ │ ├── PBSZ.java │ │ │ │ ├── PORT.java │ │ │ │ ├── PROT.java │ │ │ │ ├── PWD.java │ │ │ │ ├── QUIT.java │ │ │ │ ├── QUOT.java │ │ │ │ ├── REIN.java │ │ │ │ ├── REST.java │ │ │ │ ├── RETR.java │ │ │ │ ├── RMD.java │ │ │ │ ├── RNFR.java │ │ │ │ ├── RNTO.java │ │ │ │ ├── SITE.java │ │ │ │ ├── SITE_DESCUSER.java │ │ │ │ ├── SITE_HELP.java │ │ │ │ ├── SITE_STAT.java │ │ │ │ ├── SITE_WHO.java │ │ │ │ ├── SITE_ZONE.java │ │ │ │ ├── SIZE.java │ │ │ │ ├── STAT.java │ │ │ │ ├── STOR.java │ │ │ │ ├── STOU.java │ │ │ │ ├── STRU.java │ │ │ │ ├── SYST.java │ │ │ │ ├── TYPE.java │ │ │ │ ├── USER.java │ │ │ │ ├── listing │ │ │ │ ├── DirectoryLister.java │ │ │ │ ├── FileFilter.java │ │ │ │ ├── FileFormater.java │ │ │ │ ├── LISTFileFormater.java │ │ │ │ ├── ListArgument.java │ │ │ │ ├── ListArgumentParser.java │ │ │ │ ├── MLSTFileFormater.java │ │ │ │ ├── NLSTFileFormater.java │ │ │ │ ├── RegexFileFilter.java │ │ │ │ ├── VisibleFileFilter.java │ │ │ │ └── package.html │ │ │ │ └── package.html │ │ │ ├── config │ │ │ └── spring │ │ │ │ ├── CommandFactoryBeanDefinitionParser.java │ │ │ │ ├── FileSystemBeanDefinitionParser.java │ │ │ │ ├── FtpServerNamespaceHandler.java │ │ │ │ ├── ListenerBeanDefinitionParser.java │ │ │ │ ├── ServerBeanDefinitionParser.java │ │ │ │ ├── SpringUtil.java │ │ │ │ ├── UserManagerBeanDefinitionParser.java │ │ │ │ ├── factorybeans │ │ │ │ ├── ConnectionConfigFactoryBean.java │ │ │ │ ├── DataConnectionConfigurationFactoryBean.java │ │ │ │ ├── FtpServerFactoryBean.java │ │ │ │ ├── ListenerFactoryBean.java │ │ │ │ └── SslConfigurationFactoryBean.java │ │ │ │ └── package.html │ │ │ ├── filesystem │ │ │ └── nativefs │ │ │ │ ├── NativeFileSystemFactory.java │ │ │ │ └── impl │ │ │ │ ├── NameEqualsFileFilter.java │ │ │ │ ├── NativeFileSystemView.java │ │ │ │ ├── NativeFtpFile.java │ │ │ │ └── package.html │ │ │ ├── ftpletcontainer │ │ │ ├── FtpletContainer.java │ │ │ └── impl │ │ │ │ ├── DefaultFtpletContainer.java │ │ │ │ └── package.html │ │ │ ├── impl │ │ │ ├── DefaultConnectionConfig.java │ │ │ ├── DefaultDataConnectionConfiguration.java │ │ │ ├── DefaultFtpHandler.java │ │ │ ├── DefaultFtpRequest.java │ │ │ ├── DefaultFtpServer.java │ │ │ ├── DefaultFtpServerContext.java │ │ │ ├── DefaultFtpSession.java │ │ │ ├── DefaultFtpStatistics.java │ │ │ ├── FileObserver.java │ │ │ ├── FtpHandler.java │ │ │ ├── FtpIoSession.java │ │ │ ├── FtpReplyTranslator.java │ │ │ ├── FtpServerContext.java │ │ │ ├── IODataConnection.java │ │ │ ├── IODataConnectionFactory.java │ │ │ ├── LocalizedDataTransferFtpReply.java │ │ │ ├── LocalizedFileActionFtpReply.java │ │ │ ├── LocalizedFtpReply.java │ │ │ ├── LocalizedRenameFtpReply.java │ │ │ ├── PassivePorts.java │ │ │ ├── ServerDataConnectionFactory.java │ │ │ ├── ServerFtpStatistics.java │ │ │ ├── StatisticsObserver.java │ │ │ └── package.html │ │ │ ├── ipfilter │ │ │ ├── IpFilterType.java │ │ │ ├── MinaSessionFilter.java │ │ │ ├── RemoteIpFilter.java │ │ │ └── SessionFilter.java │ │ │ ├── listener │ │ │ ├── Listener.java │ │ │ ├── ListenerFactory.java │ │ │ └── nio │ │ │ │ ├── AbstractListener.java │ │ │ │ ├── FtpHandlerAdapter.java │ │ │ │ ├── FtpLoggingFilter.java │ │ │ │ ├── FtpResponseEncoder.java │ │ │ │ ├── FtpServerProtocolCodecFactory.java │ │ │ │ ├── NioListener.java │ │ │ │ └── package.html │ │ │ ├── main │ │ │ ├── AddUser.java │ │ │ ├── CommandLine.java │ │ │ └── Daemon.java │ │ │ ├── message │ │ │ ├── MessageResource.java │ │ │ ├── MessageResourceFactory.java │ │ │ └── impl │ │ │ │ ├── DefaultMessageResource.java │ │ │ │ └── package.html │ │ │ ├── ssl │ │ │ ├── ClientAuth.java │ │ │ ├── SslConfiguration.java │ │ │ ├── SslConfigurationFactory.java │ │ │ └── impl │ │ │ │ ├── AliasKeyManager.java │ │ │ │ ├── DefaultSslConfiguration.java │ │ │ │ ├── ExtendedAliasKeyManager.java │ │ │ │ └── package.html │ │ │ ├── usermanager │ │ │ ├── AnonymousAuthentication.java │ │ │ ├── ClearTextPasswordEncryptor.java │ │ │ ├── DbUserManagerFactory.java │ │ │ ├── Md5PasswordEncryptor.java │ │ │ ├── PasswordEncryptor.java │ │ │ ├── PropertiesUserManagerFactory.java │ │ │ ├── SaltedPasswordEncryptor.java │ │ │ ├── UserFactory.java │ │ │ ├── UserManagerFactory.java │ │ │ ├── UsernamePasswordAuthentication.java │ │ │ └── impl │ │ │ │ ├── AbstractUserManager.java │ │ │ │ ├── BaseUser.java │ │ │ │ ├── ConcurrentLoginPermission.java │ │ │ │ ├── ConcurrentLoginRequest.java │ │ │ │ ├── DbUserManager.java │ │ │ │ ├── PropertiesUserManager.java │ │ │ │ ├── TransferRatePermission.java │ │ │ │ ├── TransferRateRequest.java │ │ │ │ ├── UserMetadata.java │ │ │ │ ├── WritePermission.java │ │ │ │ └── WriteRequest.java │ │ │ └── util │ │ │ ├── BaseProperties.java │ │ │ ├── ClassUtils.java │ │ │ ├── DateUtils.java │ │ │ ├── EncryptUtils.java │ │ │ ├── FileRegularFilter.java │ │ │ ├── IllegalInetAddressException.java │ │ │ ├── IllegalPortException.java │ │ │ ├── IoUtils.java │ │ │ ├── OS.java │ │ │ ├── RegularExpr.java │ │ │ ├── SocketAddressEncoder.java │ │ │ └── StringUtils.java │ └── resources │ │ ├── META-INF │ │ ├── spring.handlers │ │ └── spring.schemas │ │ └── org │ │ └── apache │ │ └── ftpserver │ │ ├── config │ │ └── spring │ │ │ └── ftpserver-1.0.xsd │ │ └── message │ │ ├── FtpStatus.properties │ │ ├── FtpStatus_en.properties │ │ └── FtpStatus_zh-tw.properties │ └── test │ ├── java │ └── org │ │ └── apache │ │ └── ftpserver │ │ ├── VersionTest.java │ │ ├── clienttests │ │ ├── ActiveModeReplyTest.java │ │ ├── BindExceptionSerialTest.java │ │ ├── CdCaseInsensitiveTest.java │ │ ├── CdTest.java │ │ ├── ClientTestTemplate.java │ │ ├── ConcatedCommandsTest.java │ │ ├── ConnectPickPortTest.java │ │ ├── ConnectTest.java │ │ ├── CustomMaxLoginTest.java │ │ ├── DataTransferTimeoutTest.java │ │ ├── DecoderTest.java │ │ ├── DefaultMaxLoginTest.java │ │ ├── DeleteTest.java │ │ ├── DirectoryTest.java │ │ ├── FeatTest.java │ │ ├── FtpMd5Test.java │ │ ├── HelpTest.java │ │ ├── I18NTest.java │ │ ├── InetAddressBlacklistTest.java │ │ ├── IpFilterTest.java │ │ ├── LangTest.java │ │ ├── ListPassiveTest.java │ │ ├── ListTest.java │ │ ├── LoginNoAnonTest.java │ │ ├── LoginTest.java │ │ ├── MDTMTest.java │ │ ├── MFMTTest.java │ │ ├── NLSTTest.java │ │ ├── PasvAddressTest.java │ │ ├── PasvAddressWithHostnameTest.java │ │ ├── PasvAddressWithOverridenHostnameGetter.java │ │ ├── PasvPortUnavailableTest.java │ │ ├── PasvTest.java │ │ ├── PasvUsedPortTest.java │ │ ├── PortTest.java │ │ ├── RenameTest.java │ │ ├── RetrievePassiveTest.java │ │ ├── RetrieveTest.java │ │ ├── RmDirTest.java │ │ ├── SiteTest.java │ │ ├── SizeTest.java │ │ ├── StatTest.java │ │ ├── StorePassiveTest.java │ │ ├── StoreTest.java │ │ ├── SubnetBlacklistTest.java │ │ ├── SuspendResumeTest.java │ │ ├── SymbolicLinkTest.java │ │ ├── SystTest.java │ │ ├── TypeTest.java │ │ └── UnlimitedMaxLoginTest.java │ │ ├── commands │ │ └── impl │ │ │ ├── DefaultCommandFactoryTest.java │ │ │ └── listing │ │ │ ├── DirectoryListerTest.java │ │ │ ├── LISTFileFormaterTest.java │ │ │ ├── ListArgumentParserTest.java │ │ │ ├── ListArgumentTest.java │ │ │ ├── MLSTFileFormaterTest.java │ │ │ └── NLSTFileFormaterTest.java │ │ ├── config │ │ └── spring │ │ │ ├── DbUserManagerConfigTest.java │ │ │ ├── FileUserManagerConfigTest.java │ │ │ ├── FtpletsConfigTest.java │ │ │ ├── MockUserManager.java │ │ │ ├── MyCustomListener.java │ │ │ ├── PropertyPlaceholderTest.java │ │ │ ├── SpringConfigTest.java │ │ │ ├── SpringConfigTestTemplate.java │ │ │ └── TestFtplet.java │ │ ├── filesystem │ │ └── nativefs │ │ │ └── impl │ │ │ ├── FileSystemViewTemplate.java │ │ │ ├── FtpFileTestTemplate.java │ │ │ ├── NativeFileSystemViewTest.java │ │ │ └── NativeFtpFileTest.java │ │ ├── ftpletcontainer │ │ ├── DefaultFtpLetContainerTest.java │ │ ├── FtpLetContainerTestTemplate.java │ │ ├── FtpLetOnConnectTest.java │ │ ├── FtpLetReturnDefaultTest.java │ │ ├── FtpLetReturnDisconnectTest.java │ │ ├── FtpLetReturnSkipTest.java │ │ ├── FtpLetThrowFtpExceptionTest.java │ │ ├── FtpLetThrowIOExceptionTest.java │ │ ├── FtpLetThrowRuntimeExceptionTest.java │ │ ├── MockFtplet.java │ │ └── MockFtpletCallback.java │ │ ├── impl │ │ ├── DefaultFtpServerTest.java │ │ ├── FtpRequestImplTest.java │ │ ├── FtpStatisticsImplTest.java │ │ ├── PassivePortsTest.java │ │ └── ServerFtpStatisticsTestTemplate.java │ │ ├── ssl │ │ ├── ExplicitSecurityTestTemplate.java │ │ ├── ImplicitSecurityTestTemplate.java │ │ ├── MinaCipherSuitesTest.java │ │ ├── MinaClientAuthTest.java │ │ ├── MinaExplicitSSLTest.java │ │ ├── MinaExplicitTLSTest.java │ │ ├── MinaImplicitClientAuthTest.java │ │ ├── MinaImplicitDataChannelTest.java │ │ ├── MinaImplicitSSLTest.java │ │ ├── MinaImplicitTLSTest.java │ │ ├── SSLTestTemplate.java │ │ └── impl │ │ │ ├── AliasKeymanagerTest.java │ │ │ └── ExtendedAliasKeymanagerTest.java │ │ ├── test │ │ └── TestUtil.java │ │ ├── usermanager │ │ ├── UsernamePasswordAuthenticationTest.java │ │ └── impl │ │ │ ├── BaseUserTest.java │ │ │ ├── ClearTextDbUserManagerTest.java │ │ │ ├── ClearTextPasswordEncryptorTest.java │ │ │ ├── ConcurrentLoginPermissionTest.java │ │ │ ├── DbUserManagerTest.java │ │ │ ├── Md5PasswordEncryptorTest.java │ │ │ ├── PropertiesUserManagerTest.java │ │ │ ├── SaltedPasswordEncryptorTest.java │ │ │ ├── UserManagerTestTemplate.java │ │ │ ├── VolatilePropertiesUserManagerTest.java │ │ │ └── WritePermissionTest.java │ │ └── util │ │ ├── BasePropertiesTest.java │ │ ├── EncryptUtilsTest.java │ │ ├── RegularExprTest.java │ │ └── SocketAddressEncoderTest.java │ └── resources │ ├── client.jks │ ├── dbusermanagertest-cleartext-hsql.sql │ ├── dbusermanagertest-hsql.sql │ ├── ftpserver.jks │ ├── keymanager-test.jks │ ├── log4j.properties │ ├── org │ └── apache │ │ └── ftpserver │ │ └── ftpserver.properties │ ├── spring-config │ ├── config-property-placeholder.xml │ ├── config-spring-1.xml │ └── placeholder.properties │ └── users.properties ├── apache-ftpserver-1.1.1-ftplet-api ├── build.gradle └── src │ ├── main │ └── java │ │ └── org │ │ └── apache │ │ └── ftpserver │ │ └── ftplet │ │ ├── Authentication.java │ │ ├── AuthenticationFailedException.java │ │ ├── Authority.java │ │ ├── AuthorizationRequest.java │ │ ├── DataConnection.java │ │ ├── DataConnectionFactory.java │ │ ├── DataTransferFtpReply.java │ │ ├── DataType.java │ │ ├── DefaultFtpReply.java │ │ ├── DefaultFtplet.java │ │ ├── FileActionFtpReply.java │ │ ├── FileSystemFactory.java │ │ ├── FileSystemView.java │ │ ├── FtpException.java │ │ ├── FtpFile.java │ │ ├── FtpReply.java │ │ ├── FtpRequest.java │ │ ├── FtpSession.java │ │ ├── FtpStatistics.java │ │ ├── Ftplet.java │ │ ├── FtpletContext.java │ │ ├── FtpletResult.java │ │ ├── RenameFtpReply.java │ │ ├── Structure.java │ │ ├── User.java │ │ └── UserManager.java │ └── test │ └── java │ └── org │ └── apache │ └── ftpserver │ └── ftplet │ ├── DataTypeTest.java │ ├── DefaultFtpReplyTest.java │ ├── ExampleFtplet.java │ └── StructureTest.java ├── build.gradle ├── fastlane ├── img │ ├── google-play-policy-mail.png │ ├── permission1.png │ ├── permission2.png │ ├── permission3.png │ ├── permission4.png │ └── permission5.png └── metadata │ └── android │ ├── bn │ └── short_description.txt │ ├── ca │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── cs │ └── short_description.txt │ ├── de │ └── short_description.txt │ ├── en-US │ ├── full_description.txt │ ├── images │ │ ├── icon.png │ │ ├── phoneScreenshots │ │ │ ├── 1.png │ │ │ └── 2.png │ │ └── tvScreenshots │ │ │ ├── 1.png │ │ │ └── 2.png │ ├── short_description.txt │ └── title.txt │ ├── es │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── fr │ └── short_description.txt │ ├── ga │ └── short_description.txt │ ├── he │ └── short_description.txt │ ├── hu │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── id │ └── short_description.txt │ ├── is │ └── short_description.txt │ ├── it │ └── short_description.txt │ ├── kab │ └── short_description.txt │ ├── nb_NO │ └── short_description.txt │ ├── nn │ └── short_description.txt │ ├── pl │ └── short_description.txt │ ├── pt_BR │ └── short_description.txt │ ├── pt_PT │ └── short_description.txt │ ├── ro │ └── short_description.txt │ ├── ru │ └── short_description.txt │ ├── sq │ └── short_description.txt │ ├── sr │ └── short_description.txt │ ├── sw │ └── short_description.txt │ ├── tr │ └── short_description.txt │ ├── uk │ └── short_description.txt │ └── zh_Hans │ └── short_description.txt ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── pftpd-pojo-lib ├── .gitignore ├── build.gradle └── src │ ├── main │ └── java │ │ └── org │ │ └── primftpd │ │ └── pojo │ │ ├── Base64Decoder.java │ │ ├── KeyParser.java │ │ ├── LsOutputBean.java │ │ ├── LsOutputBuilder.java │ │ └── LsOutputParser.java │ └── test │ ├── java │ └── org │ │ └── primftpd │ │ └── pojo │ │ ├── KeyParserTests.java │ │ └── LsOutputParserTests.java │ └── resources │ ├── keys │ ├── authorized_keys │ ├── dsa.key │ ├── dsa.key.pub │ ├── ecdsa.key │ ├── ecdsa.key.384 │ ├── ecdsa.key.521 │ ├── ecdsa.key.pub │ ├── ecdsa.key.pub.384 │ ├── ecdsa.key.pub.521 │ ├── ed25519.bad.key │ ├── ed25519.bad.key.pub │ ├── ed25519.key │ ├── ed25519.key.pub │ ├── rsa.bad.key │ ├── rsa.bad.key.pub │ ├── rsa.key │ └── rsa.key.pub │ └── ls-output │ ├── good.txt │ ├── name-with-spaces.txt │ ├── no-link-count.txt │ ├── no-such-file.txt │ └── sym-link.txt ├── primitiveFTPd ├── .gitignore ├── AndroidManifest.xml ├── build.gradle ├── proguard.cfg ├── project.properties ├── res │ ├── drawable-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_notification.png │ │ ├── ic_play_black_18dp.png │ │ ├── ic_play_black_24dp.png │ │ ├── ic_play_black_36dp.png │ │ ├── ic_play_black_48dp.png │ │ ├── ic_play_grey600_18dp.png │ │ ├── ic_play_grey600_24dp.png │ │ ├── ic_play_grey600_36dp.png │ │ ├── ic_play_grey600_48dp.png │ │ ├── ic_play_white_18dp.png │ │ ├── ic_play_white_24dp.png │ │ ├── ic_play_white_36dp.png │ │ ├── ic_play_white_48dp.png │ │ ├── ic_refresh_black_18dp.png │ │ ├── ic_refresh_black_24dp.png │ │ ├── ic_refresh_black_36dp.png │ │ ├── ic_refresh_black_48dp.png │ │ ├── ic_refresh_grey600_18dp.png │ │ ├── ic_refresh_grey600_24dp.png │ │ ├── ic_refresh_grey600_36dp.png │ │ ├── ic_refresh_grey600_48dp.png │ │ ├── ic_refresh_white_18dp.png │ │ ├── ic_refresh_white_24dp.png │ │ ├── ic_refresh_white_36dp.png │ │ ├── ic_refresh_white_48dp.png │ │ ├── ic_settings_black_18dp.png │ │ ├── ic_settings_black_24dp.png │ │ ├── ic_settings_black_36dp.png │ │ ├── ic_settings_black_48dp.png │ │ ├── ic_settings_grey600_18dp.png │ │ ├── ic_settings_grey600_24dp.png │ │ ├── ic_settings_grey600_36dp.png │ │ ├── ic_settings_grey600_48dp.png │ │ ├── ic_settings_white_18dp.png │ │ ├── ic_settings_white_24dp.png │ │ ├── ic_settings_white_36dp.png │ │ ├── ic_settings_white_48dp.png │ │ ├── ic_stop_black_18dp.png │ │ ├── ic_stop_black_24dp.png │ │ ├── ic_stop_black_36dp.png │ │ ├── ic_stop_black_48dp.png │ │ ├── ic_stop_grey600_18dp.png │ │ ├── ic_stop_grey600_24dp.png │ │ ├── ic_stop_grey600_36dp.png │ │ ├── ic_stop_grey600_48dp.png │ │ ├── ic_stop_white_18dp.png │ │ ├── ic_stop_white_24dp.png │ │ ├── ic_stop_white_36dp.png │ │ ├── ic_stop_white_48dp.png │ │ ├── ic_warning_black_36dp.png │ │ ├── ic_warning_white_36dp.png │ │ ├── outline_cloud_download_black_18.png │ │ ├── outline_cloud_download_black_24.png │ │ ├── outline_cloud_download_black_36.png │ │ └── outline_cloud_download_black_48.png │ ├── drawable-ldpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ └── ic_launcher_foreground.png │ ├── drawable-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_notification.png │ │ ├── ic_play_black_18dp.png │ │ ├── ic_play_black_24dp.png │ │ ├── ic_play_black_36dp.png │ │ ├── ic_play_black_48dp.png │ │ ├── ic_play_grey600_18dp.png │ │ ├── ic_play_grey600_24dp.png │ │ ├── ic_play_grey600_36dp.png │ │ ├── ic_play_grey600_48dp.png │ │ ├── ic_play_white_18dp.png │ │ ├── ic_play_white_24dp.png │ │ ├── ic_play_white_36dp.png │ │ ├── ic_play_white_48dp.png │ │ ├── ic_refresh_black_18dp.png │ │ ├── ic_refresh_black_24dp.png │ │ ├── ic_refresh_black_36dp.png │ │ ├── ic_refresh_black_48dp.png │ │ ├── ic_refresh_grey600_18dp.png │ │ ├── ic_refresh_grey600_24dp.png │ │ ├── ic_refresh_grey600_36dp.png │ │ ├── ic_refresh_grey600_48dp.png │ │ ├── ic_refresh_white_18dp.png │ │ ├── ic_refresh_white_24dp.png │ │ ├── ic_refresh_white_36dp.png │ │ ├── ic_refresh_white_48dp.png │ │ ├── ic_settings_black_18dp.png │ │ ├── ic_settings_black_24dp.png │ │ ├── ic_settings_black_36dp.png │ │ ├── ic_settings_black_48dp.png │ │ ├── ic_settings_grey600_18dp.png │ │ ├── ic_settings_grey600_24dp.png │ │ ├── ic_settings_grey600_36dp.png │ │ ├── ic_settings_grey600_48dp.png │ │ ├── ic_settings_white_18dp.png │ │ ├── ic_settings_white_24dp.png │ │ ├── ic_settings_white_36dp.png │ │ ├── ic_settings_white_48dp.png │ │ ├── ic_stop_black_18dp.png │ │ ├── ic_stop_black_24dp.png │ │ ├── ic_stop_black_36dp.png │ │ ├── ic_stop_black_48dp.png │ │ ├── ic_stop_grey600_18dp.png │ │ ├── ic_stop_grey600_24dp.png │ │ ├── ic_stop_grey600_36dp.png │ │ ├── ic_stop_grey600_48dp.png │ │ ├── ic_stop_white_18dp.png │ │ ├── ic_stop_white_24dp.png │ │ ├── ic_stop_white_36dp.png │ │ ├── ic_stop_white_48dp.png │ │ ├── ic_warning_black_36dp.png │ │ ├── ic_warning_white_36dp.png │ │ ├── outline_cloud_download_black_18.png │ │ ├── outline_cloud_download_black_24.png │ │ ├── outline_cloud_download_black_36.png │ │ └── outline_cloud_download_black_48.png │ ├── drawable-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_notification.png │ │ ├── ic_play_black_18dp.png │ │ ├── ic_play_black_24dp.png │ │ ├── ic_play_black_36dp.png │ │ ├── ic_play_black_48dp.png │ │ ├── ic_play_grey600_18dp.png │ │ ├── ic_play_grey600_24dp.png │ │ ├── ic_play_grey600_36dp.png │ │ ├── ic_play_grey600_48dp.png │ │ ├── ic_play_white_18dp.png │ │ ├── ic_play_white_24dp.png │ │ ├── ic_play_white_36dp.png │ │ ├── ic_play_white_48dp.png │ │ ├── ic_refresh_black_18dp.png │ │ ├── ic_refresh_black_24dp.png │ │ ├── ic_refresh_black_36dp.png │ │ ├── ic_refresh_black_48dp.png │ │ ├── ic_refresh_grey600_18dp.png │ │ ├── ic_refresh_grey600_24dp.png │ │ ├── ic_refresh_grey600_36dp.png │ │ ├── ic_refresh_grey600_48dp.png │ │ ├── ic_refresh_white_18dp.png │ │ ├── ic_refresh_white_24dp.png │ │ ├── ic_refresh_white_36dp.png │ │ ├── ic_refresh_white_48dp.png │ │ ├── ic_settings_black_18dp.png │ │ ├── ic_settings_black_24dp.png │ │ ├── ic_settings_black_36dp.png │ │ ├── ic_settings_black_48dp.png │ │ ├── ic_settings_grey600_18dp.png │ │ ├── ic_settings_grey600_24dp.png │ │ ├── ic_settings_grey600_36dp.png │ │ ├── ic_settings_grey600_48dp.png │ │ ├── ic_settings_white_18dp.png │ │ ├── ic_settings_white_24dp.png │ │ ├── ic_settings_white_36dp.png │ │ ├── ic_settings_white_48dp.png │ │ ├── ic_stop_black_18dp.png │ │ ├── ic_stop_black_24dp.png │ │ ├── ic_stop_black_36dp.png │ │ ├── ic_stop_black_48dp.png │ │ ├── ic_stop_grey600_18dp.png │ │ ├── ic_stop_grey600_24dp.png │ │ ├── ic_stop_grey600_36dp.png │ │ ├── ic_stop_grey600_48dp.png │ │ ├── ic_stop_white_18dp.png │ │ ├── ic_stop_white_24dp.png │ │ ├── ic_stop_white_36dp.png │ │ ├── ic_stop_white_48dp.png │ │ ├── ic_warning_black_36dp.png │ │ ├── ic_warning_white_36dp.png │ │ ├── outline_cloud_download_black_18.png │ │ ├── outline_cloud_download_black_24.png │ │ ├── outline_cloud_download_black_36.png │ │ └── outline_cloud_download_black_48.png │ ├── drawable-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_notification.png │ │ ├── ic_play_black_18dp.png │ │ ├── ic_play_black_24dp.png │ │ ├── ic_play_black_36dp.png │ │ ├── ic_play_black_48dp.png │ │ ├── ic_play_grey600_18dp.png │ │ ├── ic_play_grey600_24dp.png │ │ ├── ic_play_grey600_36dp.png │ │ ├── ic_play_grey600_48dp.png │ │ ├── ic_play_white_18dp.png │ │ ├── ic_play_white_24dp.png │ │ ├── ic_play_white_36dp.png │ │ ├── ic_play_white_48dp.png │ │ ├── ic_refresh_black_18dp.png │ │ ├── ic_refresh_black_24dp.png │ │ ├── ic_refresh_black_36dp.png │ │ ├── ic_refresh_black_48dp.png │ │ ├── ic_refresh_grey600_18dp.png │ │ ├── ic_refresh_grey600_24dp.png │ │ ├── ic_refresh_grey600_36dp.png │ │ ├── ic_refresh_grey600_48dp.png │ │ ├── ic_refresh_white_18dp.png │ │ ├── ic_refresh_white_24dp.png │ │ ├── ic_refresh_white_36dp.png │ │ ├── ic_refresh_white_48dp.png │ │ ├── ic_settings_black_18dp.png │ │ ├── ic_settings_black_24dp.png │ │ ├── ic_settings_black_36dp.png │ │ ├── ic_settings_black_48dp.png │ │ ├── ic_settings_grey600_18dp.png │ │ ├── ic_settings_grey600_24dp.png │ │ ├── ic_settings_grey600_36dp.png │ │ ├── ic_settings_grey600_48dp.png │ │ ├── ic_settings_white_18dp.png │ │ ├── ic_settings_white_24dp.png │ │ ├── ic_settings_white_36dp.png │ │ ├── ic_settings_white_48dp.png │ │ ├── ic_stop_black_18dp.png │ │ ├── ic_stop_black_24dp.png │ │ ├── ic_stop_black_36dp.png │ │ ├── ic_stop_black_48dp.png │ │ ├── ic_stop_grey600_18dp.png │ │ ├── ic_stop_grey600_24dp.png │ │ ├── ic_stop_grey600_36dp.png │ │ ├── ic_stop_grey600_48dp.png │ │ ├── ic_stop_white_18dp.png │ │ ├── ic_stop_white_24dp.png │ │ ├── ic_stop_white_36dp.png │ │ ├── ic_stop_white_48dp.png │ │ ├── ic_warning_black_36dp.png │ │ ├── ic_warning_white_36dp.png │ │ ├── outline_cloud_download_black_18.png │ │ ├── outline_cloud_download_black_24.png │ │ ├── outline_cloud_download_black_36.png │ │ └── outline_cloud_download_black_48.png │ ├── drawable-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_notification.png │ │ ├── ic_play_black_18dp.png │ │ ├── ic_play_black_24dp.png │ │ ├── ic_play_black_36dp.png │ │ ├── ic_play_black_48dp.png │ │ ├── ic_play_grey600_18dp.png │ │ ├── ic_play_grey600_24dp.png │ │ ├── ic_play_grey600_36dp.png │ │ ├── ic_play_grey600_48dp.png │ │ ├── ic_play_white_18dp.png │ │ ├── ic_play_white_24dp.png │ │ ├── ic_play_white_36dp.png │ │ ├── ic_play_white_48dp.png │ │ ├── ic_refresh_black_18dp.png │ │ ├── ic_refresh_black_24dp.png │ │ ├── ic_refresh_black_36dp.png │ │ ├── ic_refresh_black_48dp.png │ │ ├── ic_refresh_grey600_18dp.png │ │ ├── ic_refresh_grey600_24dp.png │ │ ├── ic_refresh_grey600_36dp.png │ │ ├── ic_refresh_grey600_48dp.png │ │ ├── ic_refresh_white_18dp.png │ │ ├── ic_refresh_white_24dp.png │ │ ├── ic_refresh_white_36dp.png │ │ ├── ic_refresh_white_48dp.png │ │ ├── ic_settings_black_18dp.png │ │ ├── ic_settings_black_24dp.png │ │ ├── ic_settings_black_36dp.png │ │ ├── ic_settings_black_48dp.png │ │ ├── ic_settings_grey600_18dp.png │ │ ├── ic_settings_grey600_24dp.png │ │ ├── ic_settings_grey600_36dp.png │ │ ├── ic_settings_grey600_48dp.png │ │ ├── ic_settings_white_18dp.png │ │ ├── ic_settings_white_24dp.png │ │ ├── ic_settings_white_36dp.png │ │ ├── ic_settings_white_48dp.png │ │ ├── ic_stop_black_18dp.png │ │ ├── ic_stop_black_24dp.png │ │ ├── ic_stop_black_36dp.png │ │ ├── ic_stop_black_48dp.png │ │ ├── ic_stop_grey600_18dp.png │ │ ├── ic_stop_grey600_24dp.png │ │ ├── ic_stop_grey600_36dp.png │ │ ├── ic_stop_grey600_48dp.png │ │ ├── ic_stop_white_18dp.png │ │ ├── ic_stop_white_24dp.png │ │ ├── ic_stop_white_36dp.png │ │ ├── ic_stop_white_48dp.png │ │ ├── ic_warning_black_36dp.png │ │ ├── ic_warning_white_36dp.png │ │ ├── outline_cloud_download_black_18.png │ │ ├── outline_cloud_download_black_24.png │ │ ├── outline_cloud_download_black_36.png │ │ └── outline_cloud_download_black_48.png │ ├── drawable │ │ ├── filepicker_ic_create_new_folder_white_24dp.xml │ │ ├── filepicker_ic_folder_black_48dp.xml │ │ ├── filepicker_ic_save_black_24dp.xml │ │ ├── label_custom.xml │ │ ├── label_focused.xml │ │ ├── outline_cloud_download_24.xml │ │ ├── play.xml │ │ ├── refresh.xml │ │ ├── settings.xml │ │ ├── stop.xml │ │ ├── widget_background_disabled.xml │ │ └── widget_background_enabled.xml │ ├── layout-land │ │ ├── leanback.xml │ │ └── main.xml │ ├── layout │ │ ├── about.xml │ │ ├── block_client_action.xml │ │ ├── block_connect_data.xml │ │ ├── block_fallback_buttons.xml │ │ ├── block_key_fingerprints.xml │ │ ├── block_stats.xml │ │ ├── block_storage_type.xml │ │ ├── clean_space.xml │ │ ├── client_action.xml │ │ ├── dialog_add_key.xml │ │ ├── filepicker_activity.xml │ │ ├── filepicker_dialog_folder_name.xml │ │ ├── filepicker_fragment.xml │ │ ├── filepicker_listitem_checkable.xml │ │ ├── filepicker_listitem_dir.xml │ │ ├── keys_fingerprints.xml │ │ ├── leanback.xml │ │ ├── main.xml │ │ ├── pubkey_auth_keys.xml │ │ ├── qr.xml │ │ ├── receive_share.xml │ │ ├── resetting_filepicker.xml │ │ ├── tabs_activity.xml │ │ ├── tasker_edit_activity.xml │ │ └── widget.xml │ ├── menu │ │ ├── filepicker_actions.xml │ │ └── pftpd.xml │ ├── mipmap-anydpi-v26 │ │ └── ic_banner.xml │ ├── mipmap-v26 │ │ └── ic_launcher.xml │ ├── mipmap-xhdpi │ │ ├── ic_banner.png │ │ └── ic_banner_foreground.png │ ├── values-ar │ │ └── strings.xml │ ├── values-ca │ │ └── strings.xml │ ├── values-cs │ │ └── strings.xml │ ├── values-de │ │ └── strings.xml │ ├── values-el │ │ └── strings.xml │ ├── values-es │ │ └── strings.xml │ ├── values-eu │ │ └── strings.xml │ ├── values-fr │ │ └── strings.xml │ ├── values-hu │ │ └── strings.xml │ ├── values-in │ │ └── strings.xml │ ├── values-it │ │ └── strings.xml │ ├── values-ko │ │ └── strings.xml │ ├── values-nb-rNO │ │ └── strings.xml │ ├── values-nl │ │ └── strings.xml │ ├── values-pl │ │ └── strings.xml │ ├── values-pt-rBR │ │ └── strings.xml │ ├── values-pt-rPT │ │ └── strings.xml │ ├── values-ro │ │ └── strings.xml │ ├── values-ru │ │ └── strings.xml │ ├── values-sq │ │ └── strings.xml │ ├── values-ta │ │ └── strings.xml │ ├── values-th │ │ └── strings.xml │ ├── values-tr │ │ └── strings.xml │ ├── values-uk │ │ └── strings.xml │ ├── values-zh-rTW │ │ └── strings.xml │ ├── values-zh │ │ └── strings.xml │ ├── values │ │ ├── attr.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── ic_banner_background.xml │ │ ├── strings.xml │ │ └── themes.xml │ └── xml │ │ ├── filepicker_provider_paths.xml │ │ ├── preferences.xml │ │ ├── shortcuts.xml │ │ └── widget_info.xml └── src │ └── org │ ├── apache │ ├── ftpserver │ │ └── listener │ │ │ └── nio │ │ │ ├── AndroidFtpIoSession.java │ │ │ └── FtpHandlerAdapter.java │ └── sshd │ │ └── common │ │ └── util │ │ ├── Buffer.java │ │ └── SecurityUtils.java │ ├── primftpd │ ├── BootUpReceiver.java │ ├── PftpdApp.java │ ├── StartStopWidgetProvider.java │ ├── crypto │ │ ├── HostKeyAlgorithm.java │ │ └── SignatureEd25519.java │ ├── events │ │ ├── ClientActionEvent.java │ │ ├── DataTransferredEvent.java │ │ ├── ServerInfoRequestEvent.java │ │ ├── ServerInfoResponseEvent.java │ │ └── ServerStateChangedEvent.java │ ├── filepicker │ │ ├── ResettingFilePickerActivity.java │ │ ├── ResettingFilePickerFragment.java │ │ └── nononsenseapps │ │ │ ├── AbstractFilePickerActivity.java │ │ │ ├── AbstractFilePickerFragment.java │ │ │ ├── DividerItemDecoration.java │ │ │ ├── FileItemAdapter.java │ │ │ ├── FilePickerActivity.java │ │ │ ├── FilePickerFragment.java │ │ │ ├── LogicHandler.java │ │ │ ├── NewFolderFragment.java │ │ │ ├── NewItemFragment.java │ │ │ └── Utils.java │ ├── filesystem │ │ ├── AbstractFile.java │ │ ├── AbstractFileSystemView.java │ │ ├── FsFile.java │ │ ├── FsFileSystemView.java │ │ ├── FsFtpFile.java │ │ ├── FsFtpFileSystemView.java │ │ ├── FsSshFile.java │ │ ├── FsSshFileSystemView.java │ │ ├── FtpUtils.java │ │ ├── MediaScannerClient.java │ │ ├── QuickShareFile.java │ │ ├── QuickShareFileSystemView.java │ │ ├── QuickShareFtpFile.java │ │ ├── QuickShareFtpFileSystemView.java │ │ ├── QuickShareSshFile.java │ │ ├── QuickShareSshFileSystemView.java │ │ ├── RoSafFile.java │ │ ├── RoSafFileSystemView.java │ │ ├── RoSafFtpFile.java │ │ ├── RoSafFtpFileSystemView.java │ │ ├── RoSafSshFile.java │ │ ├── RoSafSshFileSystemView.java │ │ ├── RootFile.java │ │ ├── RootFileSystemView.java │ │ ├── RootFtpFile.java │ │ ├── RootFtpFileSystemView.java │ │ ├── RootSshFile.java │ │ ├── RootSshFileSystemView.java │ │ ├── SafFile.java │ │ ├── SafFileSystemView.java │ │ ├── SafFtpFile.java │ │ ├── SafFtpFileSystemView.java │ │ ├── SafSshFile.java │ │ ├── SafSshFileSystemView.java │ │ ├── SshUtils.java │ │ ├── StorageManagerUtil.java │ │ ├── TracingBufferedOutputStream.java │ │ ├── Utils.java │ │ ├── VirtualFile.java │ │ ├── VirtualFileSystemView.java │ │ ├── VirtualFtpFile.java │ │ ├── VirtualFtpFileSystemView.java │ │ ├── VirtualSshFile.java │ │ └── VirtualSshFileSystemView.java │ ├── io │ │ ├── AndroidIoDataConnection.java │ │ ├── AndroidIoDataConnectionFactory.java │ │ ├── CountingReadableByteChannel.java │ │ └── CountingWritableByteChannel.java │ ├── log │ │ ├── CsvLogger.java │ │ ├── CsvLoggerFactory.java │ │ └── PrimFtpdLoggerBinder.java │ ├── prefs │ │ ├── EncryptingEditTextPreference.java │ │ ├── FtpPassivePortsEditTextPreference.java │ │ ├── FtpPrefsFragment.java │ │ ├── LoadPrefsUtil.java │ │ ├── Logging.java │ │ ├── PortEditTextPreference.java │ │ ├── PrefsBean.java │ │ ├── ServerToStart.java │ │ └── StorageType.java │ ├── remotecontrol │ │ ├── PftpdPowerTogglesPlugin.java │ │ ├── PowerTogglesPlugin.java │ │ ├── TaskerAction.java │ │ ├── TaskerCondition.java │ │ ├── TaskerEditActionActivity.java │ │ ├── TaskerEditConditionActivity.java │ │ ├── TaskerReceiver.java │ │ ├── TaskerReceiverFire.java │ │ └── TaskerReceiverQuery.java │ ├── services │ │ ├── AbstractServerService.java │ │ ├── AndroidPrefsUserManager.java │ │ ├── DownloadsService.java │ │ ├── FtpServerService.java │ │ ├── FtpUserWithIp.java │ │ ├── PftpdService.java │ │ ├── PubKeyAuthenticator.java │ │ ├── QuickSettingsService.java │ │ ├── ServerServiceHandler.java │ │ └── SshServerService.java │ ├── share │ │ ├── AbstractReceiveShareActivity.java │ │ ├── QuickShareBean.java │ │ ├── ReceiveQuickShareActivity.java │ │ ├── ReceiveSaveAsActivity.java │ │ └── TargetDir.java │ ├── ui │ │ ├── AboutFragment.java │ │ ├── AddPubkeyAuthKeyDialogFragment.java │ │ ├── CalcPubkeyFinterprintsTask.java │ │ ├── CleanSpaceFragment.java │ │ ├── ClientActionFragment.java │ │ ├── DownloadOrSaveDialogFragment.java │ │ ├── GenKeysAskDialogFragment.java │ │ ├── GenKeysAsyncTask.java │ │ ├── KeysFingerprintsFragment.java │ │ ├── LeanbackActivity.java │ │ ├── LeanbackFragment.java │ │ ├── MainTabsActivity.java │ │ ├── PftpdFragment.java │ │ ├── PubKeyAuthKeysFragment.java │ │ ├── QrFragment.java │ │ ├── RecreateLogger.java │ │ ├── StartServerAndExitActivity.java │ │ ├── StopServerAndExitActivity.java │ │ └── UiModeUtil.java │ └── util │ │ ├── Defaults.java │ │ ├── EncryptionUtil.java │ │ ├── FileSizeUtils.java │ │ ├── FilenameUnique.java │ │ ├── FingerprintBean.java │ │ ├── IpAddressProvider.java │ │ ├── KeyFingerprintBean.java │ │ ├── KeyFingerprintProvider.java │ │ ├── NotificationUtil.java │ │ ├── PrngFixes.java │ │ ├── RemoteIpChecker.java │ │ ├── SampleAuthKeysFileCreator.java │ │ ├── ServersRunningBean.java │ │ ├── ServicesStartStopUtil.java │ │ ├── StringUtils.java │ │ ├── TmpDirType.java │ │ └── WakelockUtil.java │ └── slf4j │ ├── LoggerFactory.java │ └── impl │ └── StaticLoggerBinder.java ├── privacy-policy.md ├── release-build.py ├── settings.gradle ├── slf4j-android-1.6.1-RC1 ├── build.gradle └── src │ └── org │ └── slf4j │ ├── ILoggerFactory.java │ ├── IMarkerFactory.java │ ├── Logger.java │ ├── LoggerFactory.java │ ├── MDC.java │ ├── Marker.java │ ├── MarkerFactory.java │ ├── helpers │ ├── BasicMDCAdapter.java │ ├── BasicMarker.java │ ├── BasicMarkerFactory.java │ ├── FormattingTuple.java │ ├── MarkerIgnoringBase.java │ ├── MessageFormatter.java │ ├── NOPLogger.java │ ├── NOPLoggerFactory.java │ ├── NOPMDCAdapter.java │ ├── NamedLoggerBase.java │ ├── SubstituteLoggerFactory.java │ ├── Util.java │ └── package.html │ ├── impl │ ├── AndroidLogger.java │ ├── AndroidLoggerFactory.java │ ├── StaticLoggerBinder.java │ ├── StaticMDCBinder.java │ └── StaticMarkerBinder.java │ ├── package.html │ └── spi │ ├── LocationAwareLogger.java │ ├── LoggerFactoryBinder.java │ ├── MDCAdapter.java │ ├── MarkerFactoryBinder.java │ └── package.html ├── sshd-core-0.14.0 ├── build.gradle └── src │ ├── META-INF │ ├── DEPENDENCIES │ ├── LICENSE │ ├── MANIFEST.MF │ ├── NOTICE │ └── services │ │ └── org.apache.sshd.common.io.IoServiceFactoryFactory │ └── org │ └── apache │ └── sshd │ ├── ClientChannel.java │ ├── ClientSession.java │ ├── SshBuilder.java │ ├── SshClient.java │ ├── SshServer.java │ ├── agent │ ├── SshAgent.java │ ├── SshAgentConstants.java │ ├── SshAgentFactory.java │ ├── SshAgentServer.java │ ├── common │ │ ├── AbstractAgentClient.java │ │ ├── AbstractAgentProxy.java │ │ ├── AgentDelegate.java │ │ └── AgentForwardSupport.java │ ├── local │ │ ├── AgentForwardedChannel.java │ │ ├── AgentImpl.java │ │ ├── AgentServerProxy.java │ │ ├── ChannelAgentForwarding.java │ │ ├── LocalAgentFactory.java │ │ └── ProxyAgentFactory.java │ └── unix │ │ ├── AgentClient.java │ │ ├── AgentForwardedChannel.java │ │ ├── AgentServer.java │ │ ├── AgentServerProxy.java │ │ ├── AprLibrary.java │ │ ├── ChannelAgentForwarding.java │ │ └── UnixAgentFactory.java │ ├── client │ ├── ClientFactoryManager.java │ ├── ScpClient.java │ ├── ServerKeyVerifier.java │ ├── SessionFactory.java │ ├── SftpClient.java │ ├── SftpException.java │ ├── UserAuth.java │ ├── UserInteraction.java │ ├── auth │ │ ├── UserAuthKeyboardInteractive.java │ │ ├── UserAuthPassword.java │ │ ├── UserAuthPublicKey.java │ │ └── deprecated │ │ │ ├── AbstractUserAuth.java │ │ │ ├── UserAuth.java │ │ │ ├── UserAuthAgent.java │ │ │ ├── UserAuthKeyboardInteractive.java │ │ │ ├── UserAuthPassword.java │ │ │ └── UserAuthPublicKey.java │ ├── channel │ │ ├── AbstractClientChannel.java │ │ ├── ChannelDirectTcpip.java │ │ ├── ChannelExec.java │ │ ├── ChannelSession.java │ │ ├── ChannelShell.java │ │ ├── ChannelSubsystem.java │ │ └── PtyCapableChannelSession.java │ ├── future │ │ ├── AuthFuture.java │ │ ├── ConnectFuture.java │ │ ├── DefaultAuthFuture.java │ │ ├── DefaultConnectFuture.java │ │ ├── DefaultOpenFuture.java │ │ └── OpenFuture.java │ ├── kex │ │ ├── AbstractDHGClient.java │ │ ├── DHG1.java │ │ ├── DHG14.java │ │ ├── DHGEX.java │ │ ├── DHGEX256.java │ │ ├── ECDHP256.java │ │ ├── ECDHP384.java │ │ └── ECDHP521.java │ ├── keyverifier │ │ ├── AcceptAllServerKeyVerifier.java │ │ ├── DelegatingServerKeyVerifier.java │ │ └── RequiredServerKeyVerifier.java │ ├── scp │ │ └── DefaultScpClient.java │ ├── session │ │ ├── ClientConnectionService.java │ │ ├── ClientSessionImpl.java │ │ ├── ClientUserAuthService.java │ │ ├── ClientUserAuthServiceNew.java │ │ └── ClientUserAuthServiceOld.java │ └── sftp │ │ └── DefaultSftpClient.java │ ├── common │ ├── AbstractFactoryManager.java │ ├── AbstractSessionIoHandler.java │ ├── Channel.java │ ├── Cipher.java │ ├── Closeable.java │ ├── Compression.java │ ├── Digest.java │ ├── Factory.java │ ├── FactoryManager.java │ ├── ForwardingFilter.java │ ├── KeyExchange.java │ ├── KeyPairProvider.java │ ├── Mac.java │ ├── NamedFactory.java │ ├── PtyMode.java │ ├── Random.java │ ├── RequestHandler.java │ ├── RuntimeSshException.java │ ├── Service.java │ ├── ServiceFactory.java │ ├── Session.java │ ├── SessionListener.java │ ├── Signature.java │ ├── SshConstants.java │ ├── SshException.java │ ├── SshdSocketAddress.java │ ├── TcpipForwarder.java │ ├── TcpipForwarderFactory.java │ ├── channel │ │ ├── AbstractChannel.java │ │ ├── BufferedIoOutputStream.java │ │ ├── ChannelAsyncInputStream.java │ │ ├── ChannelAsyncOutputStream.java │ │ ├── ChannelOutputStream.java │ │ ├── ChannelPipedInputStream.java │ │ ├── ChannelPipedOutputStream.java │ │ ├── Window.java │ │ └── WindowClosedException.java │ ├── cipher │ │ ├── AES128CBC.java │ │ ├── AES128CTR.java │ │ ├── AES192CBC.java │ │ ├── AES192CTR.java │ │ ├── AES256CBC.java │ │ ├── AES256CTR.java │ │ ├── ARCFOUR128.java │ │ ├── ARCFOUR256.java │ │ ├── BaseCipher.java │ │ ├── BaseRC4Cipher.java │ │ ├── BlowfishCBC.java │ │ ├── CipherNone.java │ │ ├── ECCurves.java │ │ ├── TripleDESCBC.java │ │ └── package.html │ ├── compression │ │ ├── CompressionDelayedZlib.java │ │ ├── CompressionNone.java │ │ ├── CompressionZlib.java │ │ └── package.html │ ├── digest │ │ ├── BaseDigest.java │ │ ├── MD5.java │ │ ├── SHA1.java │ │ ├── SHA256.java │ │ ├── SHA384.java │ │ ├── SHA512.java │ │ └── package.html │ ├── file │ │ ├── FileSystemAware.java │ │ ├── FileSystemFactory.java │ │ ├── FileSystemView.java │ │ ├── SshFile.java │ │ ├── nativefs │ │ │ ├── NameEqualsFileFilter.java │ │ │ ├── NativeFileSystemFactory.java │ │ │ ├── NativeFileSystemView.java │ │ │ ├── NativeSshFile.java │ │ │ └── NativeSshFileNio.java │ │ └── virtualfs │ │ │ └── VirtualFileSystemFactory.java │ ├── forward │ │ ├── DefaultTcpipForwarder.java │ │ ├── DefaultTcpipForwarderFactory.java │ │ ├── SocksProxy.java │ │ ├── TcpipClientChannel.java │ │ └── TcpipServerChannel.java │ ├── future │ │ ├── CloseFuture.java │ │ ├── DefaultCloseFuture.java │ │ ├── DefaultSshFuture.java │ │ ├── SshFuture.java │ │ └── SshFutureListener.java │ ├── io │ │ ├── DefaultIoServiceFactoryFactory.java │ │ ├── IoAcceptor.java │ │ ├── IoConnectFuture.java │ │ ├── IoConnector.java │ │ ├── IoHandler.java │ │ ├── IoInputStream.java │ │ ├── IoOutputStream.java │ │ ├── IoReadFuture.java │ │ ├── IoService.java │ │ ├── IoServiceFactory.java │ │ ├── IoServiceFactoryFactory.java │ │ ├── IoSession.java │ │ ├── IoWriteFuture.java │ │ ├── ReadPendingException.java │ │ ├── WritePendingException.java │ │ ├── mina │ │ │ ├── MinaAcceptor.java │ │ │ ├── MinaConnector.java │ │ │ ├── MinaService.java │ │ │ ├── MinaServiceFactory.java │ │ │ ├── MinaServiceFactoryFactory.java │ │ │ ├── MinaSession.java │ │ │ └── MinaSupport.java │ │ └── nio2 │ │ │ ├── Nio2Acceptor.java │ │ │ ├── Nio2CompletionHandler.java │ │ │ ├── Nio2Connector.java │ │ │ ├── Nio2Service.java │ │ │ ├── Nio2ServiceFactory.java │ │ │ ├── Nio2ServiceFactoryFactory.java │ │ │ └── Nio2Session.java │ ├── kex │ │ ├── AbstractDH.java │ │ ├── DH.java │ │ ├── DHGroupData.java │ │ └── ECDH.java │ ├── keyprovider │ │ ├── AbstractKeyPairProvider.java │ │ ├── FileKeyPairProvider.java │ │ └── ResourceKeyPairProvider.java │ ├── mac │ │ ├── BaseMac.java │ │ ├── HMACMD5.java │ │ ├── HMACMD596.java │ │ ├── HMACSHA1.java │ │ ├── HMACSHA196.java │ │ ├── HMACSHA256.java │ │ ├── HMACSHA512.java │ │ └── package.html │ ├── random │ │ ├── BouncyCastleRandom.java │ │ ├── JceRandom.java │ │ ├── SingletonRandomFactory.java │ │ └── package.html │ ├── scp │ │ └── ScpHelper.java │ ├── session │ │ ├── AbstractConnectionService.java │ │ ├── AbstractSession.java │ │ ├── AbstractSessionFactory.java │ │ ├── ConnectionService.java │ │ └── SessionTimeoutListener.java │ ├── signature │ │ ├── AbstractSignature.java │ │ ├── AbstractSignatureDSA.java │ │ ├── SignatureDSA.java │ │ ├── SignatureECDSA.java │ │ ├── SignatureRSA.java │ │ └── package.html │ └── util │ │ ├── Base64.java │ │ ├── Buffer.java │ │ ├── BufferUtils.java │ │ ├── CloseableUtils.java │ │ ├── DirectoryScanner.java │ │ ├── EventListenerUtils.java │ │ ├── IoUtils.java │ │ ├── KeyUtils.java │ │ ├── LoggingFilterOutputStream.java │ │ ├── NoCloseInputStream.java │ │ ├── NoCloseOutputStream.java │ │ ├── OsUtils.java │ │ ├── Readable.java │ │ ├── SecurityUtils.java │ │ ├── SelectorUtils.java │ │ ├── SttySupport.java │ │ └── ThreadUtils.java │ ├── moduli │ ├── package.html │ ├── server │ ├── AsyncCommand.java │ ├── ChannelSessionAware.java │ ├── Command.java │ ├── CommandFactory.java │ ├── Environment.java │ ├── ExitCallback.java │ ├── PasswordAuthenticator.java │ ├── PublickeyAuthenticator.java │ ├── ServerFactoryManager.java │ ├── SessionAware.java │ ├── Signal.java │ ├── SignalListener.java │ ├── UserAuth.java │ ├── auth │ │ ├── AbstractUserAuth.java │ │ ├── CachingPublicKeyAuthenticator.java │ │ ├── UserAuthKeyboardInteractive.java │ │ ├── UserAuthNone.java │ │ ├── UserAuthPassword.java │ │ ├── UserAuthPublicKey.java │ │ └── gss │ │ │ ├── CredentialHelper.java │ │ │ ├── GSSAuthenticator.java │ │ │ └── UserAuthGSS.java │ ├── channel │ │ ├── AbstractServerChannel.java │ │ ├── AsyncDataReceiver.java │ │ ├── ChannelDataReceiver.java │ │ ├── ChannelSession.java │ │ ├── OpenChannelException.java │ │ ├── PipeDataReceiver.java │ │ └── PuttyRequestHandler.java │ ├── command │ │ ├── ScpCommand.java │ │ ├── ScpCommandFactory.java │ │ └── UnknownCommand.java │ ├── global │ │ ├── CancelTcpipForwardHandler.java │ │ ├── KeepAliveHandler.java │ │ ├── NoMoreSessionsHandler.java │ │ └── TcpipForwardHandler.java │ ├── jaas │ │ └── JaasPasswordAuthenticator.java │ ├── kex │ │ ├── AbstractDHGServer.java │ │ ├── DHG1.java │ │ ├── DHG14.java │ │ ├── DHGEX.java │ │ ├── DHGEX256.java │ │ ├── ECDHP256.java │ │ ├── ECDHP384.java │ │ ├── ECDHP521.java │ │ └── Moduli.java │ ├── keyprovider │ │ ├── AbstractGeneratorHostKeyProvider.java │ │ ├── PEMGeneratorHostKeyProvider.java │ │ └── SimpleGeneratorHostKeyProvider.java │ ├── session │ │ ├── ServerConnectionService.java │ │ ├── ServerSession.java │ │ ├── ServerUserAuthService.java │ │ └── SessionFactory.java │ ├── sftp │ │ └── SftpSubsystem.java │ ├── shell │ │ ├── InvertedShell.java │ │ ├── InvertedShellWrapper.java │ │ └── ProcessShellFactory.java │ └── x11 │ │ └── X11ForwardSupport.java │ └── sshd-version.properties └── tests ├── testfile └── tests.py /.gitignore: -------------------------------------------------------------------------------- 1 | # IDE files 2 | .metadata 3 | RemoteSystemsTempFiles 4 | .idea 5 | out 6 | build 7 | *.iml 8 | .gradle 9 | local.properties 10 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | dist: trusty 2 | language: android 3 | android: 4 | components: 5 | - tools 6 | - build-tools-29.0.2 7 | - android-29 8 | - extra-android-m2repository 9 | # accepting licenses like this seems not to work 10 | #licenses: 11 | # - 'android-sdk-license-.+' 12 | jdk: 13 | - oraclejdk8 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2012 primFTPd Team 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/examples/resources/ftpserver.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/apache-ftpserver-1.1.1-core/src/examples/resources/ftpserver.jks -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/main/java/org/apache/ftpserver/command/AbstractCommand.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.ftpserver.command; 21 | 22 | 23 | /** 24 | * Common base class recommended for {@link Command} implementations 25 | * 26 | * @author Apache MINA Project 27 | */ 28 | public abstract class AbstractCommand implements Command { 29 | 30 | } 31 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/main/java/org/apache/ftpserver/command/impl/QUOT.java: -------------------------------------------------------------------------------- 1 | package org.apache.ftpserver.command.impl; 2 | 3 | import org.apache.ftpserver.command.AbstractCommand; 4 | import org.apache.ftpserver.ftplet.FtpReply; 5 | import org.apache.ftpserver.ftplet.FtpRequest; 6 | import org.apache.ftpserver.impl.FtpIoSession; 7 | import org.apache.ftpserver.impl.FtpServerContext; 8 | import org.apache.ftpserver.impl.LocalizedFtpReply; 9 | import org.slf4j.Logger; 10 | import org.slf4j.LoggerFactory; 11 | 12 | import java.io.IOException; 13 | 14 | public class QUOT extends AbstractCommand { 15 | 16 | private final Logger LOG = LoggerFactory.getLogger(QUOT.class); 17 | 18 | public void execute(final FtpIoSession session, 19 | final FtpServerContext context, final FtpRequest request) 20 | throws IOException { 21 | // see GH issue #207 22 | LOG.debug("QUOT received, ignoring"); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/main/java/org/apache/ftpserver/command/impl/listing/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Internal classes, do not use directly! 23 |

File listing implementations used by various FTP commands

24 | 25 | 26 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/main/java/org/apache/ftpserver/command/impl/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Internal classes, do not use directly! 23 |

FTP command implementations

24 | 25 | 26 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/main/java/org/apache/ftpserver/config/spring/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Internal classes, do not use directly! 23 |

Support classes for Spring based XML configuration

24 | 25 | 26 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/main/java/org/apache/ftpserver/filesystem/nativefs/impl/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Internal classes, do not use directly! 23 |

Native file system implementation

24 | 25 | 26 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/main/java/org/apache/ftpserver/ftpletcontainer/impl/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Internal classes, do not use directly! 23 |

Ftplet container implementation

24 | 25 | 26 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/main/java/org/apache/ftpserver/impl/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Internal classes, do not use directly! 23 | 24 | 25 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/main/java/org/apache/ftpserver/listener/nio/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Internal classes, do not use directly! 23 |

NIO based listener

24 | 25 | 26 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/main/java/org/apache/ftpserver/message/impl/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Internal classes, do not use directly! 23 |

Message resource implementation

24 | 25 | 26 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/main/java/org/apache/ftpserver/ssl/impl/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Internal classes, do not use directly! 23 |

SSL support implementation

24 | 25 | 26 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/main/resources/META-INF/spring.handlers: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | 19 | http\://mina.apache.org/ftpserver/spring/v1=org.apache.ftpserver.config.spring.FtpServerNamespaceHandler -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/main/resources/META-INF/spring.schemas: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | http\://mina.apache.org/ftpserver/ftpserver-1.0.xsd=org/apache/ftpserver/config/spring/ftpserver-1.0.xsd -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/main/resources/org/apache/ftpserver/message/FtpStatus_en.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | # English messages -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/test/resources/client.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/apache-ftpserver-1.1.1-core/src/test/resources/client.jks -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/test/resources/ftpserver.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/apache-ftpserver-1.1.1-core/src/test/resources/ftpserver.jks -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/test/resources/keymanager-test.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/apache-ftpserver-1.1.1-core/src/test/resources/keymanager-test.jks -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | log4j.rootLogger=ERROR, C 19 | log4j.appender.C=org.apache.log4j.ConsoleAppender 20 | log4j.appender.C.layout=org.apache.log4j.PatternLayout 21 | log4j.appender.C.layout.ConversionPattern=[%X{userName}] [%X{remoteIp}] [%X{session}] %m%n 22 | 23 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/test/resources/org/apache/ftpserver/ftpserver.properties: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | # Licensed to the Apache Software Foundation (ASF) under one or more 3 | # contributor license agreements. See the NOTICE file distributed with 4 | # this work for additional information regarding copyright ownership. 5 | # The ASF licenses this file to You under the Apache License, Version 2.0 6 | # (the "License"); you may not use this file except in compliance with 7 | # the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | ############################################################################# 17 | # This is a placeholder for unit testing, 18 | # will in most cases be overriden by the real file provided by the Maven build 19 | ftpserver.version=1.2.3 20 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-core/src/test/resources/spring-config/placeholder.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | port1=2222 -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-ftplet-api/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * This file was generated by the Gradle 'init' task. 3 | */ 4 | 5 | apply plugin: 'java' 6 | 7 | repositories { 8 | mavenCentral() 9 | } 10 | 11 | sourceCompatibility = '1.7' 12 | 13 | dependencies { 14 | testImplementation 'junit:junit:4.13.2' 15 | } 16 | 17 | description = 'Apache Ftplet API' 18 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-ftplet-api/src/main/java/org/apache/ftpserver/ftplet/Authentication.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.ftpserver.ftplet; 21 | 22 | /** 23 | * Represents a type of authentication request, typically anonymous or a 24 | * username and password combination 25 | * 26 | * @author Apache MINA Project 27 | */ 28 | public interface Authentication { 29 | 30 | } 31 | -------------------------------------------------------------------------------- /apache-ftpserver-1.1.1-ftplet-api/src/main/java/org/apache/ftpserver/ftplet/AuthorizationRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.ftpserver.ftplet; 21 | 22 | /** 23 | * A request for authorization for a specific task, for example write access. 24 | * 25 | * @author Apache MINA Project 26 | */ 27 | public interface AuthorizationRequest { 28 | 29 | } 30 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | -------------------------------------------------------------------------------- /fastlane/img/google-play-policy-mail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/fastlane/img/google-play-policy-mail.png -------------------------------------------------------------------------------- /fastlane/img/permission1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/fastlane/img/permission1.png -------------------------------------------------------------------------------- /fastlane/img/permission2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/fastlane/img/permission2.png -------------------------------------------------------------------------------- /fastlane/img/permission3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/fastlane/img/permission3.png -------------------------------------------------------------------------------- /fastlane/img/permission4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/fastlane/img/permission4.png -------------------------------------------------------------------------------- /fastlane/img/permission5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/fastlane/img/permission5.png -------------------------------------------------------------------------------- /fastlane/metadata/android/bn/short_description.txt: -------------------------------------------------------------------------------- 1 | এফটিপি সার্ভার 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/ca/full_description.txt: -------------------------------------------------------------------------------- 1 | Un servidor simple d'FTP i SFTP (transferència via SSH). Permet intercanviar 2 | fitxers amb altres dispositius a través de WiFi. S'ha acabat haver de cercar 3 | cables USB. S'executa sense privilegis d'administrador (root). No s'inicia 4 | amb l'arrencada del sistema: teniu el control de quan s'executa el servidor. 5 | No obstant, mentre funciona, no permet que el dispositiu entri en mode d'espera 6 | per evitar que es tallin les pujades o baixades llargues. 7 | -------------------------------------------------------------------------------- /fastlane/metadata/android/ca/short_description.txt: -------------------------------------------------------------------------------- 1 | Servidor FTP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/ca/title.txt: -------------------------------------------------------------------------------- 1 | Primitive FTPd 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/cs/short_description.txt: -------------------------------------------------------------------------------- 1 | Server FTP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/de/short_description.txt: -------------------------------------------------------------------------------- 1 | FTP-Server 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/full_description.txt: -------------------------------------------------------------------------------- 1 | A simple FTP and SFTP (SSH file transfer) server. Allows to exchange files with 2 | other machines over WiFi. No more USB cable searching. Runs without root 3 | privileges and is not started when device boots: Control yourself when the 4 | server runs. However, while it runs it prevents standby to avoid long uploads 5 | and downloads to abort. 6 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/fastlane/metadata/android/en-US/images/icon.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/tvScreenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/fastlane/metadata/android/en-US/images/tvScreenshots/1.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/tvScreenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/fastlane/metadata/android/en-US/images/tvScreenshots/2.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/short_description.txt: -------------------------------------------------------------------------------- 1 | FTP server 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/title.txt: -------------------------------------------------------------------------------- 1 | Primitive FTPd 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/es/full_description.txt: -------------------------------------------------------------------------------- 1 | Un servidor simple de FTP y SFTP (transferencia vía SSH). Permite intercambiar 2 | archivos entre dispositivos a través de una red WiFi. Se acabó el buscar cables 3 | USB. No requiere privilegios de administrador (root). Tampoco se inicia durante 4 | el arranque del sistema: tienes total control de cuándo se ejecuta el servidor. 5 | No obstante, mientras se ejecuta, no permite que el dispositivo entre en modo 6 | de espera para evitar que se corten las transferencias largas. 7 | -------------------------------------------------------------------------------- /fastlane/metadata/android/es/short_description.txt: -------------------------------------------------------------------------------- 1 | Servidor FTP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/es/title.txt: -------------------------------------------------------------------------------- 1 | Primitive FTPd 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/fr/short_description.txt: -------------------------------------------------------------------------------- 1 | Serveur FTP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/ga/short_description.txt: -------------------------------------------------------------------------------- 1 | Freastalaí FTP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/he/short_description.txt: -------------------------------------------------------------------------------- 1 | FTP שרת 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/hu/full_description.txt: -------------------------------------------------------------------------------- 1 | Egy egyszerű FTP és SFTP (SSH fájlátviteli) szerver. Lehetővé teszi fájlok cseréjét 2 | WiFi-n keresztül más gépekel. Nincs több USB-kábel keresgélés. Az eszköz root-olása nélkül 3 | is használható és nem indul el az eszköz indításakor: dönts te, hogy mikor 4 | fusson a szerver. Azonban amíg fut, megakadályozza a készenléti állapotot, hogy elkerülje 5 | a lassú és megszakadó fel- és letöltéseket. 6 | -------------------------------------------------------------------------------- /fastlane/metadata/android/hu/short_description.txt: -------------------------------------------------------------------------------- 1 | FTP szerver 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/hu/title.txt: -------------------------------------------------------------------------------- 1 | Primitív FTPd 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/id/short_description.txt: -------------------------------------------------------------------------------- 1 | Server FTP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/is/short_description.txt: -------------------------------------------------------------------------------- 1 | FTP-þjónn 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/it/short_description.txt: -------------------------------------------------------------------------------- 1 | Server FTP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/kab/short_description.txt: -------------------------------------------------------------------------------- 1 | Aqeddac 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/nb_NO/short_description.txt: -------------------------------------------------------------------------------- 1 | FTP-tjener 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/nn/short_description.txt: -------------------------------------------------------------------------------- 1 | FTP-tenar 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/pl/short_description.txt: -------------------------------------------------------------------------------- 1 | Serwer FTP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/pt_BR/short_description.txt: -------------------------------------------------------------------------------- 1 | Servidor FTP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/pt_PT/short_description.txt: -------------------------------------------------------------------------------- 1 | Servidor FTP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/ro/short_description.txt: -------------------------------------------------------------------------------- 1 | Serverul FTP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/ru/short_description.txt: -------------------------------------------------------------------------------- 1 | FTP-сервер 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/sq/short_description.txt: -------------------------------------------------------------------------------- 1 | Shërbyes FTP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/sr/short_description.txt: -------------------------------------------------------------------------------- 1 | FTP сервер 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/sw/short_description.txt: -------------------------------------------------------------------------------- 1 | Seva ya FTP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/tr/short_description.txt: -------------------------------------------------------------------------------- 1 | FTP sunucusu 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/uk/short_description.txt: -------------------------------------------------------------------------------- 1 | FTP-сервер 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/zh_Hans/short_description.txt: -------------------------------------------------------------------------------- 1 | FTP 服务器 2 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | android.enableJetifier=false 2 | android.useAndroidX=true 3 | org.gradle.caching = true 4 | org.gradle.parallel = true 5 | org.gradle.configureondemand = true 6 | org.gradle.vfs.watch = true 7 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Dec 11 06:54:45 CET 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-bin.zip 7 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/.gitignore: -------------------------------------------------------------------------------- 1 | # IDE files 2 | .metadata 3 | RemoteSystemsTempFiles 4 | .idea 5 | out 6 | build 7 | *.iml 8 | .gradle 9 | local.properties 10 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java' 2 | 3 | targetCompatibility = '1.7' 4 | sourceCompatibility = '1.7' 5 | 6 | repositories { 7 | mavenCentral() 8 | } 9 | 10 | dependencies { 11 | implementation 'org.bouncycastle:bcpg-jdk15on:1.70' 12 | implementation 'org.bouncycastle:bcpkix-jdk15on:1.70' 13 | 14 | implementation 'org.slf4j:slf4j-api:1.7.26' 15 | 16 | testImplementation 'junit:junit:4.13.2' 17 | testImplementation 'commons-codec:commons-codec:1.13' 18 | } 19 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/main/java/org/primftpd/pojo/Base64Decoder.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.pojo; 2 | 3 | /** 4 | * JDK versions before 8 did not contain a base64 decoder. But android does. 5 | * For test cases apache commons-codec is used. 6 | */ 7 | public interface Base64Decoder { 8 | byte[] decode(String str); 9 | } 10 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/keys/dsa.key: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIBuwIBAAKBgQDei34mWwLCMlUZg1S/51gW8q2y8R1o+RZqhb2gD7JYGcGwf6au 3 | jH1zjBxpX9LDvjzZTNTXVTPn1uk4grysdUiiR55SSCQk4/NjJumwJm4yi6fM0d3K 4 | ceQhn4Viqe63f+Cn5j3wSlx2V4H2xXJE/Mb1NzqFBkxzgerkYY3jVrpDdwIVAOgs 5 | 29a3aDjgrnKzvhBiYAhD/OmzAoGBAJYV/wa8YHn9onL/o+0z1qsoBUinQP+mfSIH 6 | SqSoQr2v2YdZwG8Hk9yTBnKIjwTZR1UabfIurUr2mY74eAyD09zt1o7Me5hS7ynI 7 | txYstMgqH2EBiDaowso1A5VM3XgSquTi6+fnfPBHLZLCQCv1E2B9j+8tiKWXhMM9 8 | OIorTyICAoGAOgqnATZ3D01Sbz+Ow2ojwpzhKicJo6gaX5seKzZmky40PYjZCcs9 9 | I7vubOWo47UiW6Ql0VcCLSKaBloLyLMDc/Ucpsh1ak9PnuO3gVpKXSPRObhUcrPm 10 | R9M2wPWLTsTgyvaZ2PvyU8puBnsKCNGskubY3a1lpH5VscrwoJvwq+oCFAkO9xbw 11 | Qq0AhsxINN1TQXwuiROM 12 | -----END DSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/keys/dsa.key.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAN6LfiZbAsIyVRmDVL/nWBbyrbLxHWj5FmqFvaAPslgZwbB/pq6MfXOMHGlf0sO+PNlM1NdVM+fW6TiCvKx1SKJHnlJIJCTj82Mm6bAmbjKLp8zR3cpx5CGfhWKp7rd/4KfmPfBKXHZXgfbFckT8xvU3OoUGTHOB6uRhjeNWukN3AAAAFQDoLNvWt2g44K5ys74QYmAIQ/zpswAAAIEAlhX/Brxgef2icv+j7TPWqygFSKdA/6Z9IgdKpKhCva/Zh1nAbweT3JMGcoiPBNlHVRpt8i6tSvaZjvh4DIPT3O3Wjsx7mFLvKci3Fiy0yCofYQGINqjCyjUDlUzdeBKq5OLr5+d88EctksJAK/UTYH2P7y2IpZeEwz04iitPIgIAAACAOgqnATZ3D01Sbz+Ow2ojwpzhKicJo6gaX5seKzZmky40PYjZCcs9I7vubOWo47UiW6Ql0VcCLSKaBloLyLMDc/Ucpsh1ak9PnuO3gVpKXSPRObhUcrPmR9M2wPWLTsTgyvaZ2PvyU8puBnsKCNGskubY3a1lpH5VscrwoJvwq+o= comment with spaces 2 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/keys/ecdsa.key: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIHgcepH64KMc/kHKmEdlPQMeff7KwZwWsDySfFO4bpBkoAoGCCqGSM49 3 | AwEHoUQDQgAEcwn2U6FIsE2PMILY7IkN7ac8R5RlXM4YzfNuuSX8iFzNNzHEtBlX 4 | bU90olnHHqDft3rt3ar9i8VabQbNSei58A== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/keys/ecdsa.key.384: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MIGkAgEBBDBOjCXiF8EVoHpnMeyQsIjbn4uRPFKd8ax2Yxth28lU7FyjetghgMBu 3 | ZXSihL5Jem2gBwYFK4EEACKhZANiAAQVfBLw0GjYXQPX8b16lJ2pj9/b5KgRqkEk 4 | 1n8pG3pPMh3fFiZt8ceCUythfK7Lsz53ckFkB/LhfvRZx9E8TCQIAVBtAJyP+243 5 | yg+8EuQrsWsCtDwtY4OYlZq0LiFwjrc= 6 | -----END EC PRIVATE KEY----- 7 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/keys/ecdsa.key.521: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MIHcAgEBBEIAxtHhJlj0bsUMSJqIBSlMTFEpLmzWDhexar5w7Fxlnij5BnCLr2Jw 3 | QbiCMyIQ936j4BzAPQGLK0dEliiNG9H01UegBwYFK4EEACOhgYkDgYYABABYkKiU 4 | 35OhVOtkDPNHOWo79BeNYcT543GG4D+w+P5bbQdf/Siz4L3xpxK6pf+3dLOmM3fO 5 | xqM0Jg1aMV4BFBye3wBpKeOflQnOMyQyr/iNMTnc8fQnoD6EhaUMsIXLZ54stmQU 6 | 2NYM1ICIqbzsDBRCW1V18W0NGsOU2a9tvALmTwxbBQ== 7 | -----END EC PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/keys/ecdsa.key.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHMJ9lOhSLBNjzCC2OyJDe2nPEeUZVzOGM3zbrkl/IhczTcxxLQZV21PdKJZxx6g37d67d2q/YvFWm0GzUnoufA= comment 2 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/keys/ecdsa.key.pub.384: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBBV8EvDQaNhdA9fxvXqUnamP39vkqBGqQSTWfykbek8yHd8WJm3xx4JTK2F8rsuzPndyQWQH8uF+9FnH0TxMJAgBUG0AnI/7bjfKD7wS5CuxawK0PC1jg5iVmrQuIXCOtw== comment 2 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/keys/ecdsa.key.pub.521: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBABYkKiU35OhVOtkDPNHOWo79BeNYcT543GG4D+w+P5bbQdf/Siz4L3xpxK6pf+3dLOmM3fOxqM0Jg1aMV4BFBye3wBpKeOflQnOMyQyr/iNMTnc8fQnoD6EhaUMsIXLZ54stmQU2NYM1ICIqbzsDBRCW1V18W0NGsOU2a9tvALmTwxbBQ== comment 2 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/keys/ed25519.bad.key: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW 3 | QyNTUxOQAAACCmM7xamDfOzow+Pod+2XCpGCj/O1avBqp1qO8mYZ6CigAAAJBtQrB7bUKw 4 | ewAAAAtzc2gtZWQyNTUxOQAAACCmM7xamDfOzow+Pod+2XCpGCj/O1avBqp1qO8mYZ6Cig 5 | AAAEDYwGWUgievRNTHCGgHmCW5ErWbKbpNbegsH28G7d+Va6YzvFqYN87OjD4+h37ZcKkY 6 | KP87Vq8GqnWo7yZhnoKKAAAAB2V4akBleGoBAgMEBQY= 7 | -----END OPENSSH PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/keys/ed25519.bad.key.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKYzvFqYN87OjD4+h37ZcKkYKP87Vq8GqnWo7yZhnoKK exj@exj 2 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/keys/ed25519.key: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW 3 | QyNTUxOQAAACDg987Pxpne9NMQkPX0etBNcciAP++iyM+YTeNA9LKPBAAAAJB/B1y9fwdc 4 | vQAAAAtzc2gtZWQyNTUxOQAAACDg987Pxpne9NMQkPX0etBNcciAP++iyM+YTeNA9LKPBA 5 | AAAEDTrdZA4Hy/gHa7MOUujpoTJGI0IiSb9eTINC0rpNAbd+D3zs/Gmd700xCQ9fR60E1x 6 | yIA/76LIz5hN40D0so8EAAAACWV4akBleGotbQECAwQ= 7 | -----END OPENSSH PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/keys/ed25519.key.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOD3zs/Gmd700xCQ9fR60E1xyIA/76LIz5hN40D0so8E comment 2 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/keys/rsa.bad.key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDC+vrnTciRYPskwaby5NF3D8U9ndEkHSXsVWipKjmiDSsOLzbV8DkxMm0nrGy/GYYQwLLi1C0SgqzVZFv316zT5fHEBKS2J1CJ5fvRpNsRdeQWtF1QKIMWEs0gO8yf1lFluCOBsqOJDaS6Wxy1oW0H8HlTSyqLvdbaHBNHkESyQgrTQmUUfOQKrnslzuMdVFSz5pAq3W0iosRnvoqFwskj/NNgo9iUsy4y8OawutL0y+A/M1LIsYHct1S4Znrz0iTaP4BVkrFIYmO9oVgMKHJndamEF4qJ6ZBJghNVZ/5ImA0SO3H9ywvXxvBX7oPv+XiTHmJTPZtF+Yj9/vyrfLXWEA3JIbeUsPqPeWwasiBp11GCwiMC0tA+Ykoml4ZBIEx+u2tku4DGosb/Rldo8sgwyufg6HGanpgEfq5vbNthOPjohszQC52Kx9aM730iabOXB8gpjVFLbH5MSJoa+JogLM67P8ZqGVxUBlJXUlgTmwk0WDEzdaFaz+W4J2IDeUk= exj@exj 2 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/keys/rsa.key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC07YlILKbY4ZJlDRNzuXN/L9RJqe/nHnDg6n0X0I7bx2pn491LIIqClQZMorsizE/7TDsIg3GJFaae4F6n5fbsf5Yxn/98RA09Y42pcUEkP+LEFGpEjIvpO9CUAINwrObxJaBybx2zuvQnAxUYuPC076USLoImOQtNJwUWfxIsxVpFCiDM0k4RL738ctWTmwR/DdO2256npCYTs52DL1dmDvg+BqysPEDbC2RpRl+42Zr4Rforu5NKwQarQe1DY7in5CckMFBXxorebTgiAw5yzW96N8+5Z7zoIdGYzVmH58sbDga0Sz+yuytfp3Hj1QsjR7I1GE+Rvlvbp+s5xajr comment 2 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/ls-output/good.txt: -------------------------------------------------------------------------------- 1 | total 12345 2 | drwxr-xr-x 1 user group 1234 1970-01-02 00:30 dir_name 3 | -rwxr-xr-x 1 user group 1234 2. Jan 1970 file_name 4 | -rwxr-xr-x. 1 user group 1234 2. Jan 00:30 file_2 5 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/ls-output/name-with-spaces.txt: -------------------------------------------------------------------------------- 1 | total 12345 2 | drwxr-xr-x 1 user group 1234 1970-01-02 00:30 dir name 3 | -rwxr-xr-x 1 user group 1234 2. Jan 1970 file name 4 | -rwxr-xr-x. 1 user group 1234 2. Jan 00:30 file 2 5 | lrwxrwxrwx 1 user group 37 1970-01-02 00:30 link name -> /absolute/link target 6 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/ls-output/no-link-count.txt: -------------------------------------------------------------------------------- 1 | total 12345 2 | drwxr-xr-x user group 1234 1970-01-02 00:30 dir_name 3 | -rwxr-xr-x user group 1234 2. Jan 1970 file_name 4 | -rwxr-xr-x. user group 1234 2. Jan 00:30 file_2 5 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/ls-output/no-such-file.txt: -------------------------------------------------------------------------------- 1 | no such file or directory 2 | -------------------------------------------------------------------------------- /pftpd-pojo-lib/src/test/resources/ls-output/sym-link.txt: -------------------------------------------------------------------------------- 1 | lrwxrwxrwx 1 user group 37 1970-01-02 00:30 link_name -> /absolute/link/target 2 | -------------------------------------------------------------------------------- /primitiveFTPd/.gitignore: -------------------------------------------------------------------------------- 1 | # built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # files for the dex VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # generated files 12 | bin/ 13 | gen/ 14 | 15 | # Local configuration file (sdk path, etc) 16 | local.properties 17 | 18 | # IDE files 19 | .settings 20 | *.iml 21 | .gradle 22 | 23 | # gradle cq plugin 24 | cq-configs 25 | -------------------------------------------------------------------------------- /primitiveFTPd/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system use, 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | 10 | # Project target. 11 | target=android-21 12 | -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_notification.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_play_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_play_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_play_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_play_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_play_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_play_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_play_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_play_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_play_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_play_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_play_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_play_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_play_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_play_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_play_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_play_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_play_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_play_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_play_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_play_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_play_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_play_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_play_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_play_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_refresh_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_refresh_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_refresh_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_refresh_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_refresh_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_refresh_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_refresh_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_refresh_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_refresh_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_refresh_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_refresh_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_refresh_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_refresh_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_refresh_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_refresh_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_refresh_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_refresh_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_refresh_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_refresh_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_refresh_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_refresh_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_refresh_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_refresh_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_refresh_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_settings_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_settings_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_settings_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_settings_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_settings_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_settings_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_settings_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_settings_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_settings_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_settings_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_settings_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_settings_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_settings_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_settings_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_settings_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_settings_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_settings_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_settings_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_settings_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_settings_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_settings_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_settings_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_stop_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_stop_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_stop_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_stop_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_stop_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_stop_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_stop_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_stop_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_stop_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_stop_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_stop_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_stop_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_stop_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_stop_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_stop_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_stop_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_stop_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_stop_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_stop_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_stop_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_stop_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_stop_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_stop_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_stop_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_warning_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_warning_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/ic_warning_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/ic_warning_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/outline_cloud_download_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/outline_cloud_download_black_18.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/outline_cloud_download_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/outline_cloud_download_black_24.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/outline_cloud_download_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/outline_cloud_download_black_36.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-hdpi/outline_cloud_download_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-hdpi/outline_cloud_download_black_48.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-ldpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-ldpi/ic_launcher.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-ldpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-ldpi/ic_launcher_background.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-ldpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-ldpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_notification.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_play_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_play_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_play_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_play_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_play_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_play_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_play_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_play_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_play_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_play_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_play_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_play_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_play_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_play_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_play_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_play_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_play_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_play_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_play_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_play_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_play_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_play_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_play_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_play_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_refresh_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_refresh_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_refresh_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_refresh_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_refresh_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_refresh_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_refresh_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_refresh_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_refresh_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_refresh_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_refresh_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_refresh_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_refresh_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_refresh_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_refresh_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_refresh_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_refresh_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_refresh_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_refresh_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_refresh_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_refresh_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_refresh_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_refresh_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_refresh_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_settings_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_settings_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_settings_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_settings_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_settings_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_settings_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_settings_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_settings_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_settings_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_settings_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_settings_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_settings_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_settings_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_settings_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_settings_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_settings_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_settings_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_settings_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_settings_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_settings_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_settings_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_settings_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_stop_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_stop_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_stop_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_stop_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_stop_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_stop_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_stop_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_stop_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_stop_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_stop_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_stop_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_stop_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_stop_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_stop_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_stop_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_stop_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_stop_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_stop_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_stop_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_stop_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_stop_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_stop_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_stop_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_stop_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_warning_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_warning_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/ic_warning_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/ic_warning_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/outline_cloud_download_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/outline_cloud_download_black_18.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/outline_cloud_download_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/outline_cloud_download_black_24.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/outline_cloud_download_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/outline_cloud_download_black_36.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-mdpi/outline_cloud_download_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-mdpi/outline_cloud_download_black_48.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_notification.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_play_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_play_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_play_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_play_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_play_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_play_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_play_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_play_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_play_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_play_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_play_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_play_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_play_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_play_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_play_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_play_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_play_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_play_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_play_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_play_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_play_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_play_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_play_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_play_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_refresh_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_refresh_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_refresh_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_refresh_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_refresh_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_refresh_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_refresh_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_refresh_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_refresh_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_refresh_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_refresh_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_refresh_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_refresh_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_refresh_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_refresh_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_refresh_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_refresh_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_refresh_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_refresh_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_refresh_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_refresh_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_refresh_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_refresh_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_refresh_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_settings_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_settings_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_settings_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_settings_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_settings_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_settings_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_settings_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_settings_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_settings_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_settings_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_settings_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_settings_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_settings_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_settings_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_settings_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_settings_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_settings_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_settings_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_settings_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_settings_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_settings_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_settings_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_stop_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_stop_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_stop_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_stop_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_stop_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_stop_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_stop_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_stop_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_stop_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_stop_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_stop_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_stop_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_stop_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_stop_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_stop_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_stop_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_stop_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_stop_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_stop_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_stop_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_stop_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_stop_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_stop_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_stop_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_warning_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_warning_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/ic_warning_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/ic_warning_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/outline_cloud_download_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/outline_cloud_download_black_18.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/outline_cloud_download_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/outline_cloud_download_black_24.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/outline_cloud_download_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/outline_cloud_download_black_36.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xhdpi/outline_cloud_download_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xhdpi/outline_cloud_download_black_48.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_notification.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_play_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_play_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_play_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_play_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_play_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_play_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_play_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_play_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_play_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_play_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_play_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_play_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_play_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_play_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_play_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_play_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_play_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_play_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_play_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_play_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_play_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_play_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_play_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_play_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_refresh_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_refresh_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_refresh_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_refresh_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_refresh_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_refresh_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_refresh_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_refresh_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_refresh_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_refresh_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_refresh_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_refresh_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_refresh_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_refresh_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_refresh_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_refresh_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_refresh_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_refresh_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_refresh_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_refresh_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_refresh_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_refresh_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_refresh_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_refresh_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_settings_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_settings_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_settings_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_settings_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_settings_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_settings_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_settings_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_settings_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_settings_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_settings_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_settings_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_settings_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_settings_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_settings_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_settings_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_settings_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_settings_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_settings_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_settings_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_settings_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_settings_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_settings_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_stop_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_stop_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_stop_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_stop_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_stop_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_stop_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_stop_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_stop_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_stop_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_stop_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_stop_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_stop_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_stop_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_stop_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_stop_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_stop_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_stop_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_stop_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_stop_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_stop_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_stop_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_stop_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_stop_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_stop_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_warning_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_warning_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/ic_warning_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/ic_warning_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/outline_cloud_download_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/outline_cloud_download_black_18.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/outline_cloud_download_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/outline_cloud_download_black_24.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/outline_cloud_download_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/outline_cloud_download_black_36.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxhdpi/outline_cloud_download_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxhdpi/outline_cloud_download_black_48.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_notification.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_play_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_play_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_play_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_play_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_play_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_play_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_play_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_play_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_play_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_play_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_play_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_play_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_play_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_play_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_play_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_play_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_play_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_play_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_play_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_play_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_play_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_play_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_play_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_play_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_refresh_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_settings_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_settings_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_settings_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_settings_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_settings_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_settings_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_settings_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_settings_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_settings_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_settings_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_settings_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_settings_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_settings_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_settings_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_settings_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_settings_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_settings_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_settings_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_settings_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_settings_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_settings_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_settings_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_stop_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_stop_black_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_stop_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_stop_black_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_stop_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_stop_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_stop_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_stop_black_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_stop_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_stop_grey600_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_stop_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_stop_grey600_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_stop_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_stop_grey600_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_stop_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_stop_grey600_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_stop_white_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_stop_white_18dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_stop_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_stop_white_24dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_stop_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_stop_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_stop_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_stop_white_48dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_warning_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_warning_black_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/ic_warning_white_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/ic_warning_white_36dp.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/outline_cloud_download_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/outline_cloud_download_black_18.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/outline_cloud_download_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/outline_cloud_download_black_24.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/outline_cloud_download_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/outline_cloud_download_black_36.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable-xxxhdpi/outline_cloud_download_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/drawable-xxxhdpi/outline_cloud_download_black_48.png -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable/filepicker_ic_create_new_folder_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable/filepicker_ic_folder_black_48dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable/filepicker_ic_save_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable/label_custom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable/label_focused.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable/outline_cloud_download_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable/play.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable/refresh.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable/settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable/stop.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable/widget_background_disabled.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 8 | -------------------------------------------------------------------------------- /primitiveFTPd/res/drawable/widget_background_enabled.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 8 | 9 | -------------------------------------------------------------------------------- /primitiveFTPd/res/layout/dialog_add_key.xml: -------------------------------------------------------------------------------- 1 | 5 | 11 | -------------------------------------------------------------------------------- /primitiveFTPd/res/layout/filepicker_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 12 | 13 | 18 | 19 | -------------------------------------------------------------------------------- /primitiveFTPd/res/layout/filepicker_dialog_folder_name.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 28 | 29 | -------------------------------------------------------------------------------- /primitiveFTPd/res/layout/leanback.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /primitiveFTPd/res/layout/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /primitiveFTPd/res/layout/receive_share.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /primitiveFTPd/res/layout/tabs_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 18 | 19 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /primitiveFTPd/res/layout/tasker_edit_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /primitiveFTPd/res/layout/widget.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 16 | 17 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /primitiveFTPd/res/menu/filepicker_actions.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 10 | 16 | 17 | -------------------------------------------------------------------------------- /primitiveFTPd/res/menu/pftpd.xml: -------------------------------------------------------------------------------- 1 | 4 | 10 | 11 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /primitiveFTPd/res/mipmap-anydpi-v26/ic_banner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /primitiveFTPd/res/mipmap-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /primitiveFTPd/res/mipmap-xhdpi/ic_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/mipmap-xhdpi/ic_banner.png -------------------------------------------------------------------------------- /primitiveFTPd/res/mipmap-xhdpi/ic_banner_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolpi/prim-ftpd/4b21040fe76aa3f73420905f9659c1675a3c207d/primitiveFTPd/res/mipmap-xhdpi/ic_banner_foreground.png -------------------------------------------------------------------------------- /primitiveFTPd/res/values-cs/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Primitivni ftpd 4 | -------------------------------------------------------------------------------- /primitiveFTPd/res/values-ko/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 오류: 4 | 프로토콜 5 | 포트 6 | 취소 7 | 본 앱을 실행하기 위하여선 \"%1$s\" 권한이 필요합니다! 8 | 저장공간 9 | pFTPd가 작동 중입니다… 10 | 다음으로 저장 11 | 서버 시작 12 | 서버 중지 13 | -------------------------------------------------------------------------------- /primitiveFTPd/res/values/attr.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /primitiveFTPd/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #03A9F4 4 | #0288d1 5 | #00b0ff 6 | 7 | #000000 8 | 9 | #999b9b9b 10 | #991dcc1c 11 | #000000 12 | 13 | 14 | #1e000000 15 | 16 | #1effffff 17 | 18 | -------------------------------------------------------------------------------- /primitiveFTPd/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8dp 4 | -------------------------------------------------------------------------------- /primitiveFTPd/res/values/ic_banner_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #000000 4 | -------------------------------------------------------------------------------- /primitiveFTPd/res/xml/filepicker_provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /primitiveFTPd/res/xml/widget_info.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/PftpdApp.java: -------------------------------------------------------------------------------- 1 | package org.primftpd; 2 | 3 | import android.content.Context; 4 | 5 | import org.primftpd.log.CsvLoggerFactory; 6 | 7 | import androidx.multidex.MultiDexApplication; 8 | 9 | public class PftpdApp extends MultiDexApplication { 10 | @Override 11 | public void onCreate() { 12 | super.onCreate(); 13 | 14 | // init static context to be able to create log file in scoped dir 15 | Context context = getApplicationContext(); 16 | CsvLoggerFactory.CONTEXT = context; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/events/DataTransferredEvent.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.events; 2 | 3 | public class DataTransferredEvent { 4 | private final long timestamp; 5 | private final long bytes; 6 | private boolean isWrite; 7 | 8 | public DataTransferredEvent(long timestamp, long bytes, boolean isWrite) { 9 | this.timestamp = timestamp; 10 | this.bytes = bytes; 11 | this.isWrite = isWrite; 12 | } 13 | 14 | public long getTimestamp() { 15 | return timestamp; 16 | } 17 | 18 | public long getBytes() { 19 | return bytes; 20 | } 21 | 22 | public boolean isWrite() { 23 | return isWrite; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/events/ServerInfoRequestEvent.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.events; 2 | 3 | /** 4 | * Eventbus event to query information from running server. 5 | */ 6 | public class ServerInfoRequestEvent { 7 | } 8 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/events/ServerInfoResponseEvent.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.events; 2 | 3 | /** 4 | * Eventbus event to respond to {@link ServerInfoRequestEvent}. 5 | */ 6 | public class ServerInfoResponseEvent { 7 | private final int quickShareNumberOfFiles; 8 | 9 | public ServerInfoResponseEvent(int quickShareNumberOfFiles) { 10 | this.quickShareNumberOfFiles = quickShareNumberOfFiles; 11 | } 12 | 13 | public int getQuickShareNumberOfFiles() { 14 | return quickShareNumberOfFiles; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/events/ServerStateChangedEvent.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.events; 2 | 3 | /** 4 | * Eventbus event to indicate server state changed. 5 | */ 6 | public class ServerStateChangedEvent { 7 | } 8 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/filepicker/ResettingFilePickerFragment.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.filepicker; 2 | 3 | import android.os.Bundle; 4 | import androidx.annotation.Nullable; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | 9 | import org.primftpd.R; 10 | import org.primftpd.filepicker.nononsenseapps.FilePickerFragment; 11 | import org.primftpd.util.Defaults; 12 | 13 | public class ResettingFilePickerFragment extends FilePickerFragment { 14 | 15 | protected View inflateRootView(LayoutInflater inflater, ViewGroup container) { 16 | return inflater.inflate(R.layout.resetting_filepicker, container, false); 17 | } 18 | 19 | @Override 20 | public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 21 | super.onViewCreated(view, savedInstanceState); 22 | 23 | view.findViewById(R.id.button_reset).setOnClickListener(new View.OnClickListener() { 24 | @Override 25 | public void onClick(View v) { 26 | goToDir(Defaults.HOME_DIR); 27 | } 28 | }); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/filepicker/nononsenseapps/FilePickerActivity.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.filepicker.nononsenseapps; 2 | 3 | import android.annotation.SuppressLint; 4 | import android.os.Environment; 5 | import androidx.annotation.Nullable; 6 | 7 | import java.io.File; 8 | 9 | @SuppressLint("Registered") 10 | public class FilePickerActivity extends AbstractFilePickerActivity { 11 | 12 | @Override 13 | protected AbstractFilePickerFragment getFragment( 14 | @Nullable final String startPath, final int mode, final boolean allowMultiple, 15 | final boolean allowCreateDir, final boolean allowExistingFile, 16 | final boolean singleClick) { 17 | AbstractFilePickerFragment fragment = new FilePickerFragment(); 18 | // startPath is allowed to be null. In that case, default folder should be SD-card and not "/" 19 | fragment.setArgs(startPath != null ? startPath : Environment.getExternalStorageDirectory().getPath(), 20 | mode, allowMultiple, allowCreateDir, allowExistingFile, singleClick); 21 | return fragment; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/filepicker/nononsenseapps/NewFolderFragment.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.filepicker.nononsenseapps; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.annotation.Nullable; 5 | import androidx.fragment.app.FragmentManager; 6 | 7 | 8 | public class NewFolderFragment extends NewItemFragment { 9 | 10 | private static final String TAG = "new_folder_fragment"; 11 | 12 | public static void showDialog(@NonNull final FragmentManager fm, 13 | @Nullable final OnNewFolderListener listener) { 14 | NewItemFragment d = new NewFolderFragment(); 15 | d.setListener(listener); 16 | d.show(fm, TAG); 17 | } 18 | 19 | @Override 20 | protected boolean validateName(@Nullable final String itemName) { 21 | return Utils.isValidFileName(itemName); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/filesystem/AbstractFileSystemView.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.filesystem; 2 | 3 | import org.primftpd.services.PftpdService; 4 | import org.slf4j.Logger; 5 | import org.slf4j.LoggerFactory; 6 | 7 | public abstract class AbstractFileSystemView { 8 | 9 | protected final Logger logger = LoggerFactory.getLogger(getClass()); 10 | 11 | protected final PftpdService pftpdService; 12 | 13 | public AbstractFileSystemView(PftpdService pftpdService) { 14 | this.pftpdService = pftpdService; 15 | } 16 | 17 | public final PftpdService getPftpdService() { 18 | return pftpdService; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/filesystem/FtpUtils.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.filesystem; 2 | 3 | import org.apache.ftpserver.ftplet.User; 4 | import org.primftpd.services.FtpUserWithIp; 5 | import org.primftpd.util.IpAddressProvider; 6 | 7 | public class FtpUtils { 8 | static String getClientIp(User user) { 9 | if (user instanceof FtpUserWithIp) { 10 | return IpAddressProvider.extractIp(((FtpUserWithIp) user).getRemoteIp()); 11 | } 12 | return "unknown ip"; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/io/CountingReadableByteChannel.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.io; 2 | 3 | import java.io.IOException; 4 | import java.nio.ByteBuffer; 5 | import java.nio.channels.ReadableByteChannel; 6 | 7 | public class CountingReadableByteChannel implements ReadableByteChannel { 8 | 9 | private final ReadableByteChannel delegate; 10 | private int count; 11 | 12 | public CountingReadableByteChannel(ReadableByteChannel delegate) { 13 | this.delegate = delegate; 14 | this.count = 0; 15 | } 16 | 17 | @Override 18 | public int read(ByteBuffer src) throws IOException { 19 | int read = delegate.read(src); 20 | if (read != -1) { 21 | count += read; 22 | } 23 | return read; 24 | } 25 | 26 | @Override 27 | public boolean isOpen() { 28 | return delegate.isOpen(); 29 | } 30 | 31 | @Override 32 | public void close() throws IOException { 33 | delegate.close(); 34 | } 35 | 36 | public int getCount() { 37 | return count; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/io/CountingWritableByteChannel.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.io; 2 | 3 | import java.io.IOException; 4 | import java.nio.ByteBuffer; 5 | import java.nio.channels.WritableByteChannel; 6 | 7 | public class CountingWritableByteChannel implements WritableByteChannel { 8 | 9 | private final WritableByteChannel delegate; 10 | private int count; 11 | 12 | public CountingWritableByteChannel(WritableByteChannel delegate) { 13 | this.delegate = delegate; 14 | this.count = 0; 15 | } 16 | 17 | @Override 18 | public int write(ByteBuffer src) throws IOException { 19 | int written = delegate.write(src); 20 | count += written; 21 | return written; 22 | } 23 | 24 | @Override 25 | public boolean isOpen() { 26 | return delegate.isOpen(); 27 | } 28 | 29 | @Override 30 | public void close() throws IOException { 31 | delegate.close(); 32 | } 33 | 34 | public int getCount() { 35 | return count; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/prefs/Logging.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.prefs; 2 | 3 | import java.util.Collections; 4 | import java.util.HashMap; 5 | import java.util.Map; 6 | 7 | public enum Logging 8 | { 9 | TEXT("1"), 10 | ANDROID("2"), 11 | NONE("0"); 12 | 13 | private final String xmlValue; 14 | private Logging(String xmlValue) { 15 | this.xmlValue = xmlValue; 16 | } 17 | public String xmlValue() { 18 | return xmlValue; 19 | } 20 | 21 | private static final Map XML_TO_ENUM; 22 | static { 23 | Map tmp = new HashMap(); 24 | for (Logging srvToStart : values()) { 25 | tmp.put(srvToStart.xmlValue, srvToStart); 26 | } 27 | XML_TO_ENUM = Collections.unmodifiableMap(tmp); 28 | } 29 | 30 | public static Logging byXmlVal(String xmlVal) { 31 | return XML_TO_ENUM.get(xmlVal); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/prefs/StorageType.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.prefs; 2 | 3 | import java.util.Collections; 4 | import java.util.HashMap; 5 | import java.util.Map; 6 | 7 | public enum StorageType { 8 | 9 | PLAIN("1"), 10 | ROOT("2"), 11 | SAF("3"), 12 | RO_SAF("4"), 13 | VIRTUAL("5"); 14 | 15 | private final String xmlValue; 16 | private StorageType(String xmlValue) { 17 | this.xmlValue = xmlValue; 18 | } 19 | public String xmlValue() { 20 | return xmlValue; 21 | } 22 | 23 | private static final Map XML_TO_ENUM; 24 | static { 25 | Map tmp = new HashMap<>(); 26 | for (StorageType storageType : values()) { 27 | tmp.put(storageType.xmlValue, storageType); 28 | } 29 | XML_TO_ENUM = Collections.unmodifiableMap(tmp); 30 | } 31 | 32 | public static StorageType byXmlVal(String xmlVal) { 33 | return XML_TO_ENUM.get(xmlVal); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/remotecontrol/PftpdPowerTogglesPlugin.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.remotecontrol; 2 | 3 | import android.content.Context; 4 | 5 | import org.primftpd.util.ServicesStartStopUtil; 6 | import org.slf4j.Logger; 7 | import org.slf4j.LoggerFactory; 8 | 9 | public class PftpdPowerTogglesPlugin extends PowerTogglesPlugin { 10 | 11 | protected Logger logger = LoggerFactory.getLogger(getClass()); 12 | 13 | @Override 14 | protected void changeState(Context context, boolean newState) { 15 | logger.trace("changeState()"); 16 | if (newState) { 17 | ServicesStartStopUtil.startServers(context); 18 | } else { 19 | ServicesStartStopUtil.stopServers(context); 20 | } 21 | sendStateUpdate(context, newState); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/remotecontrol/TaskerAction.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.remotecontrol; 2 | 3 | import org.primftpd.R; 4 | 5 | import java.util.HashMap; 6 | import java.util.Map; 7 | 8 | public enum TaskerAction { 9 | START(R.string.startService, "start server(s)"), 10 | STOP(R.string.stopService, "stop server(s)"), 11 | TOGGLE(R.string.toggleService, "toggle server(s)"); 12 | 13 | final private int stringId; 14 | final private String blurb; 15 | 16 | private TaskerAction(int stringId, String blurb) { 17 | this.stringId = stringId; 18 | this.blurb = blurb; 19 | } 20 | 21 | public int getStringId() { 22 | return stringId; 23 | } 24 | 25 | public String getBlurb() { 26 | return blurb; 27 | } 28 | 29 | private static Map BLURB_TO_ACTION; 30 | static { 31 | BLURB_TO_ACTION = new HashMap<>(); 32 | for (TaskerAction action : values()) { 33 | BLURB_TO_ACTION.put(action.blurb, action); 34 | } 35 | } 36 | public static TaskerAction byBlurb(String blurb) { 37 | return BLURB_TO_ACTION.get(blurb); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/remotecontrol/TaskerCondition.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.remotecontrol; 2 | 3 | import org.primftpd.R; 4 | 5 | import java.util.HashMap; 6 | import java.util.Map; 7 | 8 | public enum TaskerCondition { 9 | IS_SERVER_RUNNING(R.string.isServerRunning, "server running?"); 10 | 11 | final private int stringId; 12 | final private String blurb; 13 | 14 | private TaskerCondition(int stringId, String blurb) { 15 | this.stringId = stringId; 16 | this.blurb = blurb; 17 | } 18 | 19 | public int getStringId() { 20 | return stringId; 21 | } 22 | 23 | public String getBlurb() { 24 | return blurb; 25 | } 26 | 27 | private static Map BLURB_TO_CONDITION; 28 | static { 29 | BLURB_TO_CONDITION = new HashMap<>(); 30 | for (TaskerCondition condition : values()) { 31 | BLURB_TO_CONDITION.put(condition.blurb, condition); 32 | } 33 | } 34 | public static TaskerCondition byBlurb(String blurb) { 35 | return BLURB_TO_CONDITION.get(blurb); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/services/FtpUserWithIp.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.services; 2 | 3 | import org.apache.ftpserver.usermanager.impl.BaseUser; 4 | 5 | public class FtpUserWithIp extends BaseUser { 6 | private final String remoteIp; 7 | 8 | public FtpUserWithIp(String remoteIp) { 9 | super(); 10 | this.remoteIp = remoteIp; 11 | } 12 | 13 | public String getRemoteIp() { 14 | return remoteIp; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/services/PftpdService.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.services; 2 | 3 | import android.content.Context; 4 | 5 | import org.primftpd.events.ClientActionEvent; 6 | import org.primftpd.prefs.PrefsBean; 7 | 8 | public interface PftpdService { 9 | 10 | public void postClientAction( 11 | ClientActionEvent.Storage storage, 12 | ClientActionEvent.ClientAction clientAction, 13 | String clientIp, 14 | String path, 15 | String error); 16 | 17 | public PrefsBean getPrefsBean(); 18 | 19 | public Context getContext(); 20 | } 21 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/share/QuickShareBean.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.share; 2 | 3 | import java.io.File; 4 | import java.io.Serializable; 5 | 6 | public class QuickShareBean implements Serializable { 7 | private final File tmpDir; 8 | 9 | QuickShareBean(File tmpDir) { 10 | this.tmpDir = tmpDir; 11 | } 12 | 13 | public File getTmpDir() { 14 | return tmpDir; 15 | } 16 | 17 | public int numberOfFiles() { 18 | String[] list = tmpDir.list(); 19 | if (list != null) { 20 | return list.length; 21 | } 22 | return -1; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/ui/LeanbackActivity.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.ui; 2 | 3 | 4 | import android.view.Menu; 5 | 6 | public class LeanbackActivity extends MainTabsActivity { 7 | 8 | @Override 9 | protected PftpdFragment createPftpdFragment() { 10 | return new LeanbackFragment(); 11 | } 12 | 13 | @Override 14 | public boolean onCreateOptionsMenu(Menu menu) { 15 | // no menu for leanback 16 | return true; 17 | } 18 | 19 | @Override 20 | protected boolean isLeanback() { 21 | return true; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/ui/RecreateLogger.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.ui; 2 | 3 | public interface RecreateLogger { 4 | void recreateLogger(); 5 | } 6 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/ui/StartServerAndExitActivity.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.ui; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | import android.os.Bundle; 6 | 7 | import org.primftpd.util.ServicesStartStopUtil; 8 | 9 | public class StartServerAndExitActivity extends Activity { 10 | @Override 11 | protected void onCreate(Bundle savedInstanceState) { 12 | super.onCreate(savedInstanceState); 13 | Context context = getApplicationContext(); 14 | ServicesStartStopUtil.startServers(context); 15 | 16 | // wait a short delay 17 | try { 18 | Thread.sleep(20); 19 | } catch (InterruptedException e) { 20 | // never mind 21 | } 22 | finish(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/ui/StopServerAndExitActivity.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.ui; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | import android.os.Bundle; 6 | 7 | import org.primftpd.util.ServicesStartStopUtil; 8 | 9 | public class StopServerAndExitActivity extends Activity { 10 | @Override 11 | protected void onCreate(Bundle savedInstanceState) { 12 | super.onCreate(savedInstanceState); 13 | Context context = getApplicationContext(); 14 | ServicesStartStopUtil.stopServers(context); 15 | 16 | // wait a short delay 17 | try { 18 | Thread.sleep(20); 19 | } catch (InterruptedException e) { 20 | // never mind 21 | } 22 | finish(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/ui/UiModeUtil.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.ui; 2 | 3 | import android.content.res.Configuration; 4 | import android.content.res.Resources; 5 | 6 | public class UiModeUtil { 7 | public static boolean isDarkMode(Resources resources) { 8 | int uiMode = resources.getConfiguration().uiMode; 9 | int nightModeFlags = uiMode & Configuration.UI_MODE_NIGHT_MASK; 10 | return nightModeFlags == Configuration.UI_MODE_NIGHT_YES; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/util/EncryptionUtil.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.util; 2 | 3 | import java.io.UnsupportedEncodingException; 4 | import java.security.MessageDigest; 5 | import java.security.NoSuchAlgorithmException; 6 | 7 | import org.apache.mina.util.Base64; 8 | import org.slf4j.Logger; 9 | import org.slf4j.LoggerFactory; 10 | 11 | public class EncryptionUtil 12 | { 13 | protected static final Logger logger = LoggerFactory.getLogger(EncryptionUtil.class); 14 | 15 | static private final String SALT = "H§R&q}9"; 16 | 17 | public static String encrypt(String str) 18 | { 19 | try { 20 | MessageDigest cipher = MessageDigest.getInstance("SHA-512"); 21 | byte[] encrypted = cipher.digest((str + SALT).getBytes("UTF-8")); 22 | byte[] base64 = Base64.encodeBase64(encrypted); 23 | return new String(base64, "UTF-8"); 24 | 25 | } catch (NoSuchAlgorithmException e) { 26 | logger.error("could not encrypt", e); 27 | } catch (UnsupportedEncodingException e) { 28 | logger.error("could not encrypt", e); 29 | } 30 | return null; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/util/FileSizeUtils.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.util; 2 | 3 | import java.text.CharacterIterator; 4 | import java.text.StringCharacterIterator; 5 | 6 | public class FileSizeUtils { 7 | public static String humanReadableByteCountSI(long bytes) { 8 | return humanReadableByteCountSI(bytes, ""); 9 | } 10 | public static String humanReadableByteCountSI(long bytes, String suffix) { 11 | if (bytes < 1000) { 12 | return bytes + " B"; 13 | } 14 | CharacterIterator ci = new StringCharacterIterator("kMGTPE"); 15 | while (bytes >= 999_950) { 16 | bytes /= 1000; 17 | ci.next(); 18 | } 19 | return String.format("%.1f %2$cB%3$s", bytes / 1000.0, ci.current(), suffix); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/util/FingerprintBean.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.util; 2 | 3 | public class FingerprintBean { 4 | public final String bytes; 5 | public final String base64; 6 | 7 | public FingerprintBean(String bytes, String base64) { 8 | this.bytes = bytes; 9 | this.base64 = base64; 10 | } 11 | 12 | public String fingerprint() { 13 | return bytes + "\nBase 64\n" + base64; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/util/ServersRunningBean.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.util; 2 | 3 | public class ServersRunningBean { 4 | public boolean ftp = false; 5 | public boolean ssh = false; 6 | 7 | public boolean atLeastOneRunning() { 8 | return ftp || ssh; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/primftpd/util/TmpDirType.java: -------------------------------------------------------------------------------- 1 | package org.primftpd.util; 2 | 3 | public enum TmpDirType { 4 | QUICK_SHARE, 5 | ROOT_COPY 6 | } 7 | -------------------------------------------------------------------------------- /primitiveFTPd/src/org/slf4j/impl/StaticLoggerBinder.java: -------------------------------------------------------------------------------- 1 | package org.slf4j.impl; 2 | 3 | import org.primftpd.log.PrimFtpdLoggerBinder; 4 | 5 | public class StaticLoggerBinder extends PrimFtpdLoggerBinder { 6 | } 7 | -------------------------------------------------------------------------------- /privacy-policy.md: -------------------------------------------------------------------------------- 1 | As of Fall 2021 Google requires a privacy policy for apps available in Google Play. Here it is. 2 | 3 | This app does not collect any data. No data is transferred to any servers. 4 | 5 | If users enable logging logfiles are created locally containing information about local server access. 6 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':primitiveFTPd' 2 | include ':pftpd-pojo-lib' 3 | include ':slf4j-android-1.6.1-RC1' 4 | include ':sshd-core-0.14.0' 5 | include ':apache-ftpserver-1.1.1-core' 6 | include ':apache-ftpserver-1.1.1-ftplet-api' 7 | -------------------------------------------------------------------------------- /slf4j-android-1.6.1-RC1/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java' 2 | 3 | targetCompatibility = '1.7' 4 | sourceCompatibility = '1.7' 5 | 6 | sourceSets { 7 | main { 8 | java { 9 | srcDir 'src' 10 | } 11 | } 12 | } 13 | 14 | jar { 15 | exclude('org/slf4j/LoggerFactory*') 16 | exclude('org/slf4j/impl/StaticLoggerBinder*') 17 | } 18 | 19 | repositories { 20 | mavenCentral() 21 | } 22 | 23 | dependencies { 24 | compileOnly 'com.google.android:android:4.1.1.4' 25 | } 26 | -------------------------------------------------------------------------------- /slf4j-android-1.6.1-RC1/src/org/slf4j/helpers/NOPMDCAdapter.java: -------------------------------------------------------------------------------- 1 | package org.slf4j.helpers; 2 | 3 | import java.util.Map; 4 | 5 | import org.slf4j.spi.MDCAdapter; 6 | 7 | /** 8 | * This adapter is an empty implementation of the {@link MDCAdapter} interface. 9 | * It is used for all logging systems which do not support mapped 10 | * diagnostic contexts such as JDK14, simple and NOP. 11 | * 12 | * @author Ceki Gülcü 13 | * 14 | * @since 1.4.1 15 | */ 16 | public class NOPMDCAdapter implements MDCAdapter { 17 | 18 | public void clear() { 19 | } 20 | 21 | public String get(String key) { 22 | return null; 23 | } 24 | 25 | public void put(String key, String val) { 26 | } 27 | 28 | public void remove(String key) { 29 | } 30 | 31 | public Map getCopyOfContextMap() { 32 | return null; 33 | } 34 | 35 | public void setContextMap(Map contextMap) { 36 | // NOP 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /slf4j-android-1.6.1-RC1/src/org/slf4j/helpers/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |

Helper classes.

13 | 14 |
15 | 16 | 17 | -------------------------------------------------------------------------------- /slf4j-android-1.6.1-RC1/src/org/slf4j/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |

Core logging interfaces.

13 | 14 |
15 | 16 | 17 | -------------------------------------------------------------------------------- /slf4j-android-1.6.1-RC1/src/org/slf4j/spi/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Classes and interfaces which are internal to SLF4J. Under most 6 | circumstances SLF4J users should be oblivious even to the existence of 7 | this package. 8 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java' 2 | 3 | targetCompatibility = '1.7' 4 | sourceCompatibility = '1.7' 5 | 6 | sourceSets { 7 | main { 8 | java { 9 | srcDir 'src' 10 | } 11 | resources { 12 | srcDir 'src' 13 | } 14 | } 15 | } 16 | 17 | task removeClassesBadForAndroid(type: Delete) { 18 | delete fileTree("$buildDir/classes/java/main/") { 19 | include 'org/apache/sshd/common/util/SecurityUtils*' 20 | include 'org/apache/sshd/common/util/Buffer.class' 21 | include 'org/apache/sshd/common/util/Buffer\$BufferException.class' 22 | } 23 | doFirst { 24 | println "removing classes which are bad for android" 25 | } 26 | } 27 | removeClassesBadForAndroid.dependsOn('classes') 28 | jar.dependsOn('removeClassesBadForAndroid') 29 | 30 | repositories { 31 | mavenCentral() 32 | } 33 | 34 | dependencies { 35 | compileOnly 'org.apache.mina:mina-core:2.1.6' 36 | compileOnly 'org.slf4j:slf4j-api:1.7.26' 37 | compileOnly 'tomcat:tomcat-apr:5.5.23' 38 | compileOnly 'org.bouncycastle:bcpg-jdk15on:1.70' 39 | compileOnly 'org.bouncycastle:bcpkix-jdk15on:1.70' 40 | } 41 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Built-By: gnodet 3 | Build-Jdk: 1.7.0_51 4 | Created-By: Apache Maven 3.2.2 5 | Archiver-Version: Plexus Archiver 6 | 7 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/META-INF/NOTICE: -------------------------------------------------------------------------------- 1 | 2 | Apache MINA SSHD 3 | Copyright 2008-2015 The Apache Software Foundation 4 | 5 | This product includes software developed at 6 | The Apache Software Foundation (http://www.apache.org/). 7 | 8 | 9 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/META-INF/services/org.apache.sshd.common.io.IoServiceFactoryFactory: -------------------------------------------------------------------------------- 1 | ## 2 | ## Licensed to the Apache Software Foundation (ASF) under one 3 | ## or more contributor license agreements. See the NOTICE file 4 | ## distributed with this work for additional information 5 | ## regarding copyright ownership. The ASF licenses this file 6 | ## to you under the Apache License, Version 2.0 (the 7 | ## "License"); you may not use this file except in compliance 8 | ## with the License. You may obtain a copy of the License at 9 | ## 10 | ## http://www.apache.org/licenses/LICENSE-2.0 11 | ## 12 | ## Unless required by applicable law or agreed to in writing, 13 | ## software distributed under the License is distributed on an 14 | ## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | ## KIND, either express or implied. See the License for the 16 | ## specific language governing permissions and limitations 17 | ## under the License. 18 | ## 19 | 20 | org.apache.sshd.common.io.nio2.Nio2ServiceFactoryFactory 21 | org.apache.sshd.common.io.mina.MinaServiceFactoryFactory 22 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/agent/SshAgentServer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | package org.apache.sshd.agent; 20 | 21 | public interface SshAgentServer { 22 | 23 | String getId(); 24 | 25 | void close(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/common/cipher/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Cipher implementations. 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/common/compression/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Compression implementations. 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/common/digest/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Digest implementations. 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/common/io/IoConnector.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | package org.apache.sshd.common.io; 20 | 21 | import java.io.IOException; 22 | import java.net.SocketAddress; 23 | 24 | /** 25 | */ 26 | public interface IoConnector extends IoService { 27 | 28 | IoConnectFuture connect(SocketAddress address); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/common/io/IoServiceFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | package org.apache.sshd.common.io; 20 | 21 | import org.apache.sshd.common.Closeable; 22 | 23 | /** 24 | */ 25 | public interface IoServiceFactory extends Closeable { 26 | 27 | IoConnector createConnector(IoHandler handler); 28 | 29 | IoAcceptor createAcceptor(IoHandler handler); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/common/io/IoServiceFactoryFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | package org.apache.sshd.common.io; 20 | 21 | import org.apache.sshd.common.FactoryManager; 22 | 23 | /** 24 | */ 25 | public interface IoServiceFactoryFactory { 26 | 27 | IoServiceFactory create(FactoryManager manager); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/common/io/ReadPendingException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | package org.apache.sshd.common.io; 20 | 21 | public class ReadPendingException extends IllegalStateException { 22 | 23 | } 24 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/common/io/WritePendingException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | package org.apache.sshd.common.io; 20 | 21 | public class WritePendingException extends IllegalStateException { 22 | 23 | } 24 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/common/mac/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Mac implementations. 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/common/random/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Random implementations. 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/common/signature/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Signature implementations. 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/common/util/Readable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | package org.apache.sshd.common.util; 20 | 21 | /** 22 | * @author Apache MINA SSHD Project 23 | */ 24 | public interface Readable { 25 | 26 | int available(); 27 | 28 | void getRawBytes(byte[] data, int offset, int len); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/package.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | Defines the two main classes for the client and server side of SSH protocol support. 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/server/SignalListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | package org.apache.sshd.server; 20 | 21 | /** 22 | * Define a listener to receive signals 23 | */ 24 | public interface SignalListener { 25 | 26 | /** 27 | * 28 | * @param signal 29 | */ 30 | void signal(Signal signal); 31 | } 32 | -------------------------------------------------------------------------------- /sshd-core-0.14.0/src/org/apache/sshd/sshd-version.properties: -------------------------------------------------------------------------------- 1 | ## 2 | ## Licensed to the Apache Software Foundation (ASF) under one 3 | ## or more contributor license agreements. See the NOTICE file 4 | ## distributed with this work for additional information 5 | ## regarding copyright ownership. The ASF licenses this file 6 | ## to you under the Apache License, Version 2.0 (the 7 | ## "License"); you may not use this file except in compliance 8 | ## with the License. You may obtain a copy of the License at 9 | ## 10 | ## http://www.apache.org/licenses/LICENSE-2.0 11 | ## 12 | ## Unless required by applicable law or agreed to in writing, 13 | ## software distributed under the License is distributed on an 14 | ## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | ## KIND, either express or implied. See the License for the 16 | ## specific language governing permissions and limitations 17 | ## under the License. 18 | ## 19 | 20 | version=${pom.artifactId}-${pom.version} 21 | -------------------------------------------------------------------------------- /tests/testfile: -------------------------------------------------------------------------------- 1 | test 2 | --------------------------------------------------------------------------------