¿Cómo instalar aplicaciones en Android y no tener aplicaciones de sistema?

Quiero obtener todas las aplicaciones que aparecen en la pantalla del menú. Pero, ahora solo consigo que el usuario instale las aplicaciones o todas las aplicaciones (incluida la aplicación del sistema).

Mi código actual es:

    final PackageManager pm = getActivity().getPackageManager();
    List<PackageInfo> apps = pm.getInstalledPackages(PackageManager.GET_META_DATA);

    ArrayList<PackageInfo> aux = new ArrayList<PackageInfo>();

    for (int i = 0; i < apps.size(); i++) {
        if (apps.get(i).versionName != null && ((apps.get(i).applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 1)) {
            aux.add(apps.get(i)); 
        }

Con este código, puedo hacer que el usuario instale las aplicaciones y, si comento la instrucción "si", obtendré las aplicaciones del sistema.

Por lo tanto, quiero que el usuario instale aplicaciones y aplicaciones como contactos, galería, etc.

ACTUALIZAR:

    final PackageManager pm = getActivity().getPackageManager();
    Intent intent = new Intent(Intent.ACTION_MAIN, null);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    List<ResolveInfo> apps = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA);

Respuestas a la pregunta(4)

Su respuesta a la pregunta