static String getCodename(int apilvl) throws Exception {
ArraySet<String> arset = (ArraySet<String>) android.os.Build.VERSION.class.getDeclaredField("KNOWN_CODENAMES").get(null);
ArrayList<String> list = new ArrayList<>(arset.size());
for(int i=0; i<arset.size(); i++) {
String val = arset.valueAt(i);
list.add(Math.abs(Collections.binarySearch(list,val))-1,val);
}
return list.get(apilvl-1);
}
//complexity at its peak
@AppsPorter