public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main3);
    mPm = getPackageManager();
    Intent i = getIntent();
    String title = i.getStringExtra("title");
    final String PackageName = title.substring(8);

    ExpandableListView list = (ExpandableListView) findViewById(R.id.permissionList);
    mGroupData = new ArrayList<Map<String, String>>();
    mChildData = new ArrayList<List<Map<String, String>>>();
    String permissionName;
    String applicationLabel;
    String packageName;
    PackageInfo pi = null;
    ApplicationInfo ai = null;
    applicationLabel = PackageName;
    int packageVersionCode;
    String packageVersionName;
    String AppName;
    Drawable icon;
    long lastUpdate;
    int system;
    int install;

    try {
      pi = mPm.getPackageInfo(PackageName, PackageManager.GET_META_DATA);

      try {
        icon = mPm.getApplicationIcon(PackageName); // ///icon  빼기

      } catch (PackageManager.NameNotFoundException e) {
        icon = mPm.getDefaultActivityIcon();
      }

      ImageView imageView = (ImageView) findViewById(android.R.id.icon);
      imageView.setImageDrawable(icon);

      AppName = pi.packageName;
      packageVersionCode = pi.versionCode;
      packageVersionName = pi.versionName;
      Log.v("XXXX7", "name:     " + packageVersionName);

      ai = mPm.getApplicationInfo(PackageName, PackageManager.GET_META_DATA); // //라벨 빼오기
      String labelName = mPm.getApplicationLabel(ai).toString();

      ((TextView) findViewById(R.id.curAppName)).setText(labelName); // Appname layout 연결
      ((TextView) findViewById(R.id.packagea)).setText(AppName); // Appname layout 연결
      ((TextView) findViewById(R.id.curAppversion))
          .setText(packageVersionCode + " / " + packageVersionName);

    } catch (Exception ex) {
      packageVersionCode = 0;
      packageVersionName = "n/a";
      // Log.e("PM", "Error fetching app version");
    }

    ///////////////////////////////////////////////////////////////////////////////////////////////////

    manageButton = (ImageButton) findViewById(R.id.application_detail_manage_button);
    manageButton.setImageResource(R.drawable.ic_menu_manage);
    manageButton.setOnClickListener(
        new View.OnClickListener() {
          public void onClick(View v) {
            if (Build.VERSION.SDK_INT >= 9) {
              try {
                Intent i = new Intent("android.settings.APPLICATION_DETAILS_SETTINGS");
                i.addCategory(Intent.CATEGORY_DEFAULT);
                i.setData(Uri.parse("package:" + PackageName));
                startActivity(i);
              } catch (ActivityNotFoundException anfe) {
                Intent i = new Intent("android.settings.APPLICATION_DETAILS_SETTINGS");
                i.addCategory(Intent.CATEGORY_DEFAULT);
                startActivity(i);
              }
            } else {
              Toast.makeText(
                      MarketPlay.this,
                      context.getText(R.string.application_detail_manager_unavailable),
                      Toast.LENGTH_LONG)
                  .show();
            }
          }
        });

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    try {
      pi = mPm.getPackageInfo(PackageName, PackageManager.GET_PERMISSIONS);

    } catch (PackageManager.NameNotFoundException e) {
      e.printStackTrace();
    }

    mChildData.clear();
    mGroupData.clear();

    //        int count = 0;
    //        try {
    //            for (String key : pi.requestedPermissions) {
    //                if (key.startsWith("android.permission.")) count++;
    //            }
    //            curGroupMap.put(NAME, applicationLabel + "(" + count + ")");
    //            Log.v("XXXX7", "count :     " + count);
    //        } catch (NullPointerException e) {
    //            curGroupMap.put(NAME, applicationLabel + "(" + 0 + ")");
    //            Log.v("XXXX7", "///count :     " + count);
    //        }
    //        curGroupMap.put(DESCRIPTION, packageVersionName);
    //        Log.v("XXXX7", "Description  :     " + packageVersionName);
    //        curGroupMap.put(PACKAGENAME, PackageName);
    //        Log.v("XXXX7", "packageName  :     " + PackageName);
    //
    //        mGroupData.add(curGroupMap);

    Log.v("1", "" + mChildData);

    Log.v("2", "" + mChildData);
    try {
      Log.v("3", "" + mChildData);
      if (pi.requestedPermissions != null) {
        for (String key : pi.requestedPermissions) {
          try {
            if (!(key.startsWith("android.permission."))) continue;
            Log.d("BBB", key);
            PermissionInfo pinfo = mPm.getPermissionInfo(key, PackageManager.GET_META_DATA);
            Map<String, String> curGroupMap = new HashMap<String, String>();
            Map<String, String> curChildMap = new HashMap<String, String>();
            List<Map<String, String>> children = new ArrayList<Map<String, String>>();
            CharSequence label = pinfo.loadLabel(mPm);
            CharSequence desc = pinfo.loadDescription(mPm);

            curGroupMap.put(NAME, (label == null) ? pinfo.name : label.toString());
            Log.d("AAA", label.toString());
            curGroupMap.put(SECURITYLEVEL, String.valueOf(pinfo.protectionLevel));
            curChildMap.put(PERMISSION, key);
            curChildMap.put(DESCRIPTION, (desc == null) ? "" : desc.toString());
            curChildMap.put(SECURITYLEVEL, String.valueOf(pinfo.protectionLevel));
            children.add(curChildMap);

            mGroupData.add(curGroupMap);
            Log.d("CCC", "" + mGroupData);
            mChildData.add(children);
            Log.d("DDD", "" + mChildData);

          } catch (PackageManager.NameNotFoundException e) {
            Log.i(TAG, "Ignoring unknown permission ");
            continue;
          }
        }
      } else {
        ((TextView) findViewById(R.id.iff)).setText(" App 의 요구 권한 이 없습니다 ^^  ");

        //                mGroupData.add(curGroupMap);
        //                mChildData.add(children);
      }
    } catch (NullPointerException e) {
      Log.i(TAG, "Ignoring unknown permission ");
    }

    //        SimpleAdapter adapter = new SimpleAdapter(this, children,
    // R.layout.permission_list_item, new String[]{"", "Name", "Description"}, new
    // int[]{R.id.listviewpermissiontext, R.id.text1, R.id.text2});
    //        if (pi.requestedPermissions != null) {
    //            permissionList = (ListView) findViewById(R.id.permissionList);
    //            permissionList.setAdapter(adapter);
    //        } else {
    //            ((TextView) findViewById(R.id.iff)).setText(" App 의 요구 권한 이 없습니다 ^^  ");
    //        }

    PermissionAdapter mAdapter =
        new PermissionAdapter(
            MarketPlay.this,
            mGroupData,
            R.layout.marketplay_item,
            new String[] {NAME},
            new int[] {R.id.text1},
            mChildData,
            R.layout.marketplay_item_child,
            new String[] {DESCRIPTION, PERMISSION},
            new int[] {R.id.text1, R.id.text2});

    list.setAdapter(mAdapter);

    Log.v("BBB", "" + mChildData);

    // permissionList = (ListView)findViewById(R.id.permissionL);
    // permissionList.setAdapter(adapter);    ///권한들 .. layout

  }