// Path: src/com/elefher/abstractclasses/Sysfs.java
// public abstract class Sysfs {
// 	
// 	public static String[] getAvailableFreequencies(Context cntx, String findPath) {
// 		String[] frequencies = CpuUtils.readStringArray(findFilePath(findPath, cntx));
// 		
// 		// In case does not exist frequencies return null
// 		if (frequencies == null) {
// 			return null;
// 		}
// 
// 		// Convert String array to int array in order to sort it
// 		int[] minAvToInt = ArrayUtils.stringToIntArray(frequencies);
// 		// Sort the array as ascending
// 		Arrays.sort(minAvToInt);
// 		// Convert int array to string sorted
// 		frequencies = ArrayUtils.intToStringArray(minAvToInt);
// 
// 		return frequencies;
// 	}
// 	
// 	public static String getCurrentFrequency(Context cntx, String searchFile) {
// 		return ReadFile.getStringOfFile(findFilePath(searchFile, cntx));
// 	}
// 	
// 	public static String findFilePath(String file, Context cntx){
// 		try {
// 			String path = ReadFile.existPath(ReadFile.getListOfFile("data/paths.json", "path", file, cntx));
// 			return path;
// 		} catch (JSONException e) {
// 			e.printStackTrace();
// 		}
// 		return null;
// 	}
// 	
// 	public abstract boolean setFrequency(String freq);
// 	public abstract boolean set(String Val, String To);
// 	public abstract boolean setFrequencies(String minFreq, String maxFreq);
// 	public abstract String[] getCurrent(String searchFile);
// 	public abstract String returnTo(String val);
// }
// 
// Path: src/com/elefher/utils/CpuUtils.java
// public class CpuUtils {
// 	public CpuUtils() {
// 
// 	}
// 
// 	public static String getSUbinaryPath() {
// 		String s = "/system/bin/su";
// 		File f = new File(s);
// 		if (f.exists()) {
// 			return s;
// 		}
// 		s = "/system/xbin/su";
// 		f = new File(s);
// 		if (f.exists()) {
// 			return s;
// 		}
// 		return null;
// 	}
// 
// 	public static String[] readStringArray(String filename) {
// 		String line = ReadFile.getStringOfFile(filename);
// 		if (line != null) {
// 			return line.split(" ");
// 		}
// 		return null;
// 	}
// 
// 	public static ArrayList<String> readStringArray2Cells(String filename) {
// 		BufferedReader buffered_reader = null;
// 		ArrayList<String> strLines = new ArrayList<String>();
// 		try {
// 			buffered_reader = new BufferedReader(new FileReader(filename));
// 			String line;
// 
// 			while ((line = buffered_reader.readLine()) != null) {
// 				strLines.add(line);
// 			}
// 		} catch (IOException e) {
// 			e.printStackTrace();
// 		} finally {
// 			try {
// 				if (buffered_reader != null){
// 					buffered_reader.close();
// 				}
// 			} catch (IOException ex) {
// 				ex.printStackTrace();
// 			}
// 		}
// 
// 		return strLines;
// 	} 
// }


import java.io.DataOutputStream;
import java.util.ArrayList;
import java.util.List;
import com.elefher.abstractclasses.Sysfs;
import com.elefher.utils.CpuUtils;
import android.content.Context;
import android.util.Log;
import android.widget.Toast;
package com.elefher.customclasses;




public class Gpu extends Sysfs {

	Context context;

	public Gpu(Context cntx) {
		context = cntx;
	}

	@Override
	public boolean setFrequency(String freq) {
		if (freq.isEmpty() || freq == null)
			return false;

		String gpu_file = findFilePath("max_gpuclk", context);
		try {
			List<String> commands = new ArrayList<String>();
			/*
			 * Prepare permissions so that we can write
			 */
			commands.add("chmod 0664 " + gpu_file + "\n");

			commands.add("echo " + freq + " > " + gpu_file + "\n");

			/*
			 * Set permissions in initial state
			 */
			commands.add("chmod 0444 " + gpu_file + "\n");

			commands.add("exit\n");

// Path: src/com/elefher/abstractclasses/Sysfs.java
// public abstract class Sysfs {
// 	
// 	public static String[] getAvailableFreequencies(Context cntx, String findPath) {
// 		String[] frequencies = CpuUtils.readStringArray(findFilePath(findPath, cntx));
// 		
// 		// In case does not exist frequencies return null
// 		if (frequencies == null) {
// 			return null;
// 		}
// 
// 		// Convert String array to int array in order to sort it
// 		int[] minAvToInt = ArrayUtils.stringToIntArray(frequencies);
// 		// Sort the array as ascending
// 		Arrays.sort(minAvToInt);
// 		// Convert int array to string sorted
// 		frequencies = ArrayUtils.intToStringArray(minAvToInt);
// 
// 		return frequencies;
// 	}
// 	
// 	public static String getCurrentFrequency(Context cntx, String searchFile) {
// 		return ReadFile.getStringOfFile(findFilePath(searchFile, cntx));
// 	}
// 	
// 	public static String findFilePath(String file, Context cntx){
// 		try {
// 			String path = ReadFile.existPath(ReadFile.getListOfFile("data/paths.json", "path", file, cntx));
// 			return path;
// 		} catch (JSONException e) {
// 			e.printStackTrace();
// 		}
// 		return null;
// 	}
// 	
// 	public abstract boolean setFrequency(String freq);
// 	public abstract boolean set(String Val, String To);
// 	public abstract boolean setFrequencies(String minFreq, String maxFreq);
// 	public abstract String[] getCurrent(String searchFile);
// 	public abstract String returnTo(String val);
// }
// 
// Path: src/com/elefher/utils/CpuUtils.java
// public class CpuUtils {
// 	public CpuUtils() {
// 
// 	}
// 
// 	public static String getSUbinaryPath() {
// 		String s = "/system/bin/su";
// 		File f = new File(s);
// 		if (f.exists()) {
// 			return s;
// 		}
// 		s = "/system/xbin/su";
// 		f = new File(s);
// 		if (f.exists()) {
// 			return s;
// 		}
// 		return null;
// 	}
// 
// 	public static String[] readStringArray(String filename) {
// 		String line = ReadFile.getStringOfFile(filename);
// 		if (line != null) {
// 			return line.split(" ");
// 		}
// 		return null;
// 	}
// 
// 	public static ArrayList<String> readStringArray2Cells(String filename) {
// 		BufferedReader buffered_reader = null;
// 		ArrayList<String> strLines = new ArrayList<String>();
// 		try {
// 			buffered_reader = new BufferedReader(new FileReader(filename));
// 			String line;
// 
// 			while ((line = buffered_reader.readLine()) != null) {
// 				strLines.add(line);
// 			}
// 		} catch (IOException e) {
// 			e.printStackTrace();
// 		} finally {
// 			try {
// 				if (buffered_reader != null){
// 					buffered_reader.close();
// 				}
// 			} catch (IOException ex) {
// 				ex.printStackTrace();
// 			}
// 		}
// 
// 		return strLines;
// 	} 
// }


// Path: src/com/elefher/customclasses/Gpu.java
import java.io.DataOutputStream;
import java.util.ArrayList;
import java.util.List;
import com.elefher.abstractclasses.Sysfs;
import com.elefher.utils.CpuUtils;
import android.content.Context;
import android.util.Log;
import android.widget.Toast;

package com.elefher.customclasses;




public class Gpu extends Sysfs {

	Context context;

	public Gpu(Context cntx) {
		context = cntx;
	}

	@Override
	public boolean setFrequency(String freq) {
		if (freq.isEmpty() || freq == null)
			return false;

		String gpu_file = findFilePath("max_gpuclk", context);
		try {
			List<String> commands = new ArrayList<String>();
			/*
			 * Prepare permissions so that we can write
			 */
			commands.add("chmod 0664 " + gpu_file + "\n");

			commands.add("echo " + freq + " > " + gpu_file + "\n");

			/*
			 * Set permissions in initial state
			 */
			commands.add("chmod 0444 " + gpu_file + "\n");

			commands.add("exit\n");

			Process p = Runtime.getRuntime().exec(CpuUtils.getSUbinaryPath());