@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (ZooGate.sp == null) ZooGate.sp = PreferenceManager.getDefaultSharedPreferences(getActivity()); View rootView = inflater.inflate(R.layout.fragment_zoo_gate, container, false); TextView textView = (TextView) rootView.findViewById(R.id.current_release); textView.setText(ZooGate.releaseName); ((TextView) rootView.findViewById(R.id.rom_title)).append(" " + Build.VERSION.RELEASE); ((TextView) rootView.findViewById(R.id.OS_release)) .setText(ZooGate.readShellCommand("getprop ro.modversion")); ((TextView) rootView.findViewById(R.id.device_string)) .setText( Build.MANUFACTURER + " " + Build.DEVICE + " (" + Build.HARDWARE + "/" + Build.BOARD + ")"); ((TextView) rootView.findViewById(R.id.OS_display)).setText(Build.DISPLAY + " " + Build.ID); ((TextView) rootView.findViewById(R.id.OS_fingerprint)).setText(Build.FINGERPRINT); ((TextView) rootView.findViewById(R.id.OS_Kernel)).setText(System.getProperty("os.version")); ((TextView) rootView.findViewById(R.id.OS_serial)).setText(Build.SERIAL); ((TextView) rootView.findViewById(R.id.OS_radio)).setText(Build.getRadioVersion()); return rootView; }
/** * Tests the radio version to see if it is null * * @return False if null or sdk version is < 14 */ @TargetApi(14) private boolean testRadioVersion() { if (Build.VERSION.SDK_INT >= 14) { return (android.os.Build.getRadioVersion() != null); } else { return false; } }
public static String getSerial() { String s; try { s = (String) android / os / Build.getDeclaredField("SERIAL").get(android / os / Build); } catch (Throwable throwable) { return null; } return s; }
/** The baseband version which is displayed in system Settings/About phone/Baseband version */ @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) public static String baseband() { if (CompatHelper.sdk(14)) { try { return Build.getRadioVersion(); } catch (Throwable e) { } } return UNKNOWN; }
private void run() { // If a device's clock is before 1970 (before 0), a lot of // APIs crash dealing with negative numbers, notably // java.io.File#setLastModified, so instead we fake it and // hope that time from cell towers or NTP fixes it shortly. if (System.currentTimeMillis() < EARLIEST_SUPPORTED_TIME) { Slog.w(TAG, "System clock is before 1970; setting to 1970."); SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME); } // Here we go! Slog.i(TAG, "Entered the Android system server!"); EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_SYSTEM_RUN, SystemClock.uptimeMillis()); // In case the runtime switched since last boot (such as when // the old runtime was removed in an OTA), set the system // property so that it is in sync. We can't do this in // libnativehelper's JniInvocation::Init code where we already // had to fallback to a different runtime because it is // running as root and we need to be the system user to set // the property. http://b/11463182 SystemProperties.set("persist.sys.dalvik.vm.lib.2", VMRuntime.getRuntime().vmLibrary()); // Enable the sampling profiler. if (SamplingProfilerIntegration.isEnabled()) { SamplingProfilerIntegration.start(); mProfilerSnapshotTimer = new Timer(); mProfilerSnapshotTimer.schedule( new TimerTask() { @Override public void run() { SamplingProfilerIntegration.writeSnapshot("system_server", null); } }, SNAPSHOT_INTERVAL, SNAPSHOT_INTERVAL); } // Mmmmmm... more memory! VMRuntime.getRuntime().clearGrowthLimit(); // The system server has to run all of the time, so it needs to be // as efficient as possible with its memory usage. VMRuntime.getRuntime().setTargetHeapUtilization(0.8f); // Some devices rely on runtime fingerprint generation, so make sure // we've defined it before booting further. Build.ensureFingerprintProperty(); // Within the system server, it is an error to access Environment paths without // explicitly specifying a user. Environment.setUserRequired(true); // Ensure binder calls into the system always run at foreground priority. BinderInternal.disableBackgroundScheduling(true); // Prepare the main looper thread (this thread). android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_FOREGROUND); android.os.Process.setCanSelfBackground(false); Looper.prepareMainLooper(); // Initialize native services. System.loadLibrary("android_servers"); // Check whether we failed to shut down last time we tried. // This call may not return. performPendingShutdown(); // Initialize the system context. createSystemContext(); // Create the system service manager. mSystemServiceManager = new SystemServiceManager(mSystemContext); LocalServices.addService(SystemServiceManager.class, mSystemServiceManager); // Start services. try { startBootstrapServices(); startCoreServices(); startOtherServices(); } catch (Throwable ex) { Slog.e("System", "******************************************"); Slog.e("System", "************ Failure starting system services", ex); throw ex; } // For debug builds, log event loop stalls to dropbox for analysis. if (StrictMode.conditionallyEnableDebugLogging()) { Slog.i(TAG, "Enabled StrictMode for system server main thread."); } // Loop forever. Looper.loop(); throw new RuntimeException("Main thread loop unexpectedly exited"); }