@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;
   }
 }
示例#3
0
 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;
 }
示例#4
0
 /** 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");
  }