// 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/utils/ReadFile.java
// public class ReadFile {
// 
// 	public ReadFile() {
// 		// TODO Auto-generated constructor stub
// 	}
// 
// 	public static String getStringOfFile(String file) {
// 		String cpuFreq = "";
// 		RandomAccessFile reader;
// 		try {
// 			reader = new RandomAccessFile(file, "r");
// 			cpuFreq = reader.readLine();
// 			reader.close();
// 		} catch (FileNotFoundException e) {
// 			// TODO Auto-generated catch block
// 			e.printStackTrace();
// 		} catch (IOException e) {
// 			// TODO Auto-generated catch block
// 			e.printStackTrace();
// 		}
// 
// 		return cpuFreq;
// 	}
// 
// 	public static ArrayList<String> getListOfFile(String fileToRead, String oBj, String searchPath, Context cntx) throws JSONException {
// 		JSONObject jsonObj = new JSONObject(loadJSONFromAssets(fileToRead, cntx));
// 		JSONArray jsonPaths = jsonObj.getJSONArray(oBj);
// 
// 		int jsonPathsLength = jsonPaths.length();
// 		ArrayList<String> pathList = new ArrayList<String>();
// 
// 		for (int i = 0; i < jsonPathsLength; i++) {
// 			// check if searchPath is equal with object
// 			if(jsonPaths.getJSONObject(i).names().toString().toLowerCase().indexOf(searchPath) != -1){
// 				// Store every value from array to an ArrayList
// 				JSONArray jArr = jsonPaths.getJSONObject(i).getJSONArray(searchPath);
// 				int jsonArrLength = jArr.length();
// 				for (int l = 0; l < jsonArrLength; l++){
// 					pathList.add(jArr.getString(l));
// 				}
// 				break;
// 			}
// 		}
// 		//Log.d("out-->", pathList.toString());
// 		return pathList;
// 	}
// 
// 	public static String loadJSONFromAssets(String file, Context cntx) {
// 		String json = null;
// 		try {
// 			InputStream is = cntx.getAssets().open(file);
// 			int size = is.available();
// 			byte[] buffer = new byte[size];
// 			is.read(buffer);
// 			is.close();
// 			json = new String(buffer, "UTF-8");
// 		} catch (IOException ex) {
// 			ex.printStackTrace();
// 			return null;
// 		}
// 		return json;
// 	}
// 
// 	public static String existPath(ArrayList<String> paths){
// 		int pathsSize = paths.size();
// 		for(int i = 0; i < pathsSize; i++){
// 			File file = new File(paths.get(i));
// 			if (file.exists()){
// 				return paths.get(i);
// 			}
// 		}
// 		return null;
// 	}
// 
// 	public static String findFilePath(String file, Context cntx){
// 		String path = null;
// 		try {
// 			path = existPath(getListOfFile("data/paths.json", "path", file, cntx));
// 		} catch (JSONException e) {
// 			e.printStackTrace();
// 		}
// 		return path;
// 	}
// }


import java.io.DataOutputStream;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONException;
import android.content.Context;
import android.util.Log;
import com.elefher.utils.CpuUtils;
import com.elefher.utils.ReadFile;
package com.elefher.customclasses;





public class CpuGovernors {

	public CpuGovernors() {

	}

	public static String[] getAvailableGovernors(Context cntx) {
		String[] governors = CpuUtils.readStringArray(findFilePath("scaling_available_governors", cntx));

		// In case does not exist governors return null
		if (governors == null) {
// 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/utils/ReadFile.java
// public class ReadFile {
// 
// 	public ReadFile() {
// 		// TODO Auto-generated constructor stub
// 	}
// 
// 	public static String getStringOfFile(String file) {
// 		String cpuFreq = "";
// 		RandomAccessFile reader;
// 		try {
// 			reader = new RandomAccessFile(file, "r");
// 			cpuFreq = reader.readLine();
// 			reader.close();
// 		} catch (FileNotFoundException e) {
// 			// TODO Auto-generated catch block
// 			e.printStackTrace();
// 		} catch (IOException e) {
// 			// TODO Auto-generated catch block
// 			e.printStackTrace();
// 		}
// 
// 		return cpuFreq;
// 	}
// 
// 	public static ArrayList<String> getListOfFile(String fileToRead, String oBj, String searchPath, Context cntx) throws JSONException {
// 		JSONObject jsonObj = new JSONObject(loadJSONFromAssets(fileToRead, cntx));
// 		JSONArray jsonPaths = jsonObj.getJSONArray(oBj);
// 
// 		int jsonPathsLength = jsonPaths.length();
// 		ArrayList<String> pathList = new ArrayList<String>();
// 
// 		for (int i = 0; i < jsonPathsLength; i++) {
// 			// check if searchPath is equal with object
// 			if(jsonPaths.getJSONObject(i).names().toString().toLowerCase().indexOf(searchPath) != -1){
// 				// Store every value from array to an ArrayList
// 				JSONArray jArr = jsonPaths.getJSONObject(i).getJSONArray(searchPath);
// 				int jsonArrLength = jArr.length();
// 				for (int l = 0; l < jsonArrLength; l++){
// 					pathList.add(jArr.getString(l));
// 				}
// 				break;
// 			}
// 		}
// 		//Log.d("out-->", pathList.toString());
// 		return pathList;
// 	}
// 
// 	public static String loadJSONFromAssets(String file, Context cntx) {
// 		String json = null;
// 		try {
// 			InputStream is = cntx.getAssets().open(file);
// 			int size = is.available();
// 			byte[] buffer = new byte[size];
// 			is.read(buffer);
// 			is.close();
// 			json = new String(buffer, "UTF-8");
// 		} catch (IOException ex) {
// 			ex.printStackTrace();
// 			return null;
// 		}
// 		return json;
// 	}
// 
// 	public static String existPath(ArrayList<String> paths){
// 		int pathsSize = paths.size();
// 		for(int i = 0; i < pathsSize; i++){
// 			File file = new File(paths.get(i));
// 			if (file.exists()){
// 				return paths.get(i);
// 			}
// 		}
// 		return null;
// 	}
// 
// 	public static String findFilePath(String file, Context cntx){
// 		String path = null;
// 		try {
// 			path = existPath(getListOfFile("data/paths.json", "path", file, cntx));
// 		} catch (JSONException e) {
// 			e.printStackTrace();
// 		}
// 		return path;
// 	}
// }


// Path: src/com/elefher/customclasses/CpuGovernors.java
import java.io.DataOutputStream;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONException;
import android.content.Context;
import android.util.Log;
import com.elefher.utils.CpuUtils;
import com.elefher.utils.ReadFile;

package com.elefher.customclasses;





public class CpuGovernors {

	public CpuGovernors() {

	}

	public static String[] getAvailableGovernors(Context cntx) {
		String[] governors = CpuUtils.readStringArray(findFilePath("scaling_available_governors", cntx));

		// In case does not exist governors return null
		if (governors == null) {
			return null;