support zip file raw assets
This commit is contained in:
		
							parent
							
								
									f1d6934ee3
								
							
						
					
					
						commit
						5dae040303
					
				| 
						 | 
					@ -74,6 +74,19 @@ public class TorBinaryInstaller implements TorServiceConstants {
 | 
				
			||||||
		outFile = new File(installFolder, PRIVOXYCONFIG_ASSET_KEY);
 | 
							outFile = new File(installFolder, PRIVOXYCONFIG_ASSET_KEY);
 | 
				
			||||||
		streamToFile(is,outFile, false, false);
 | 
							streamToFile(is,outFile, false, false);
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
							return true;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * Extract the Tor binary from the APK file using ZIP
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public boolean installGeoIP () throws IOException, FileNotFoundException
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							InputStream is;
 | 
				
			||||||
 | 
					        File outFile;
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
		is = context.getResources().openRawResource(R.raw.geoip);
 | 
							is = context.getResources().openRawResource(R.raw.geoip);
 | 
				
			||||||
		outFile = new File(installFolder, GEOIP_ASSET_KEY);
 | 
							outFile = new File(installFolder, GEOIP_ASSET_KEY);
 | 
				
			||||||
		streamToFile(is, outFile, false, true);
 | 
							streamToFile(is, outFile, false, true);
 | 
				
			||||||
| 
						 | 
					@ -200,12 +213,20 @@ public class TorBinaryInstaller implements TorServiceConstants {
 | 
				
			||||||
	 * @throws IOException on error
 | 
						 * @throws IOException on error
 | 
				
			||||||
	 * @throws InterruptedException when interrupted
 | 
						 * @throws InterruptedException when interrupted
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	private static void copyRawFile(Context ctx, int resid, File file, String mode) throws IOException, InterruptedException
 | 
						private static void copyRawFile(Context ctx, int resid, File file, String mode, boolean isZipd) throws IOException, InterruptedException
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		final String abspath = file.getAbsolutePath();
 | 
							final String abspath = file.getAbsolutePath();
 | 
				
			||||||
		// Write the iptables binary
 | 
							// Write the iptables binary
 | 
				
			||||||
		final FileOutputStream out = new FileOutputStream(file);
 | 
							final FileOutputStream out = new FileOutputStream(file);
 | 
				
			||||||
		final InputStream is = ctx.getResources().openRawResource(resid);
 | 
							InputStream is = ctx.getResources().openRawResource(resid);
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							if (isZipd)
 | 
				
			||||||
 | 
					    	{
 | 
				
			||||||
 | 
					    		ZipInputStream zis = new ZipInputStream(is);    		
 | 
				
			||||||
 | 
					    		ZipEntry ze = zis.getNextEntry();
 | 
				
			||||||
 | 
					    		is = zis;
 | 
				
			||||||
 | 
					    	}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
		byte buf[] = new byte[1024];
 | 
							byte buf[] = new byte[1024];
 | 
				
			||||||
		int len;
 | 
							int len;
 | 
				
			||||||
		while ((len = is.read(buf)) > 0) {
 | 
							while ((len = is.read(buf)) > 0) {
 | 
				
			||||||
| 
						 | 
					@ -229,14 +250,16 @@ public class TorBinaryInstaller implements TorServiceConstants {
 | 
				
			||||||
		File file = new File(ctx.getDir("bin",0), "iptables");
 | 
							File file = new File(ctx.getDir("bin",0), "iptables");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		if ((!file.exists()) && isARMv6()) {
 | 
							if ((!file.exists()) && isARMv6()) {
 | 
				
			||||||
			copyRawFile(ctx, R.raw.iptables_g1, file, CHMOD_EXEC);
 | 
								copyRawFile(ctx, R.raw.iptables_g1, file, CHMOD_EXEC, false);
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			changed = true;
 | 
								changed = true;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		// Check iptables_n1
 | 
							// Check iptables_n1
 | 
				
			||||||
		file = new File(ctx.getDir("bin",0), "iptables");
 | 
							file = new File(ctx.getDir("bin",0), "iptables");
 | 
				
			||||||
		if ((!file.exists()) && (!isARMv6())) {
 | 
							if ((!file.exists()) && (!isARMv6())) {
 | 
				
			||||||
			copyRawFile(ctx, R.raw.iptables_n1, file, CHMOD_EXEC);
 | 
								copyRawFile(ctx, R.raw.iptables_n1, file, CHMOD_EXEC, false);
 | 
				
			||||||
			changed = true;
 | 
								changed = true;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue