1. Download the free trial version

Problem Adding Permission - Alternative?

Discussion in 'Questions' started by fabio borges, Nov 6, 2012.

  1. fabio borges

    fabio borges Member Licensed User

    Hello.
    I want enable/disable a program from App Drawer and i am trying add using addpermission but cannot and dont know why. I am checking in App Config -> App Details.

    The error:
    java.lang.SecurityException: Permission Denial: attempt to change component state from pid=21672, uid=10105, package uid=10133

    AddPermission(android.permission.CHANGE_COMPONENT_ENABLED_STATE)

    Thanks
  2. Erel

    Erel Administrator Staff Member Licensed User

    What is this permission? It might be a system only permission.

    When you compile your app make sure that the compiler doesn't show a warning about the manifest file.
  3. fabio borges

    fabio borges Member Licensed User

    Hum...

    Code:
    Compiling code.                         0.01
    Compiling layouts code.                 
    0.00
    Generating R 
    file.                      0.80
    Compiling generated Java code.          
    0.47
    Convert 
    byte code - optimized dex.      0.27
    Packaging files.                        
    0.86
    Copying libraries resources             
    0.01
       Found 
    2 resource files.
    Signing package 
    file (debug key).       0.33
    ZipAlign 
    file.                          0.02
    Installing 
    file to device.              4.47
       Device 
    serial: XXXXXXX
    Completed successfully.
    No warning...
    If this is a System Only permission have a solution to execute?
    Code:
    Obj6.Target = Obj6.RunMethod("getPackageManager")
    Obj6.Target = Obj6.RunMethod4(
    "setApplicationEnabledSetting", args2, Types2)
  4. Erel

    Erel Administrator Staff Member Licensed User

    The permission is added correctly (you can check AndroidManifest.xml and see it). I guess that it is a system only permission which means that only system processes can access this method.

    What are you trying to achieve with this call?
  5. fabio borges

    fabio borges Member Licensed User

    I want make a List with all Installed App, if i choice one i will can select to enable/disable the app from app drawer.

    The Manifest:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest
       xmlns:android=
    "http://schemas.android.com/apk/res/android"
       package=
    "b4a.example"
       android:versionCode=
    "1"
       android:versionName=
    ""
       android:installLocation=
    "internalOnly">
       
       <uses-sdk android:minSdkVersion=
    "4" android:targetSdkVersion="14"/>
       <supports-screens android:largeScreens=
    "true" 
           android:normalScreens=
    "true" 
           android:smallScreens=
    "true" 
           android:anyDensity=
    "true"/>
       <uses-permission android:name=
    "android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
       <application
          android:icon=
    "@drawable/icon"
          android:
    label="B4A Example">
          <activity
             android:windowSoftInputMode=
    "stateHidden"
             android:launchMode=
    "singleTop"
             android:name=
    ".main"
             android:
    label="B4A Example"
             android:screenOrientation=
    "unspecified">
             <
    intent-filter>
                <action android:name=
    "android.intent.action.MAIN" />
                <category android:name=
    "android.intent.category.LAUNCHER" />
             </
    intent-filter>
             
          </activity>
       </application>
    </manifest>
    In market have a program similiar, but i forgot the name.... Sh..t
  6. fabio borges

    fabio borges Member Licensed User

    Erel, some solution or idea?
    I try add all permissions but SecurityException Persist...

    Code:
    AddPermission(android.permission.ACCESS_CHECKIN_PROPERTIES)
    AddPermission(android.permission.ACCESS_COARSE_LOCATION)
    AddPermission(android.permission.ACCESS_FINE_LOCATION)
    AddPermission(android.permission.ACCESS_LOCATION_EXTRA_COMMANDS)
    AddPermission(android.permission.ACCESS_MOCK_LOCATION)
    AddPermission(android.permission.ACCESS_NETWORK_STATE)
    AddPermission(android.permission.ACCESS_SURFACE_FLINGER)
    AddPermission(android.permission.ACCESS_WIFI_STATE)
    AddPermission(android.permission.ACCOUNT_MANAGER)
    AddPermission(android.permission.ADD_VOICEMAIL)
    AddPermission(android.permission.AUTHENTICATE_ACCOUNTS)
    AddPermission(android.permission.BATTERY_STATS)
    AddPermission(android.permission.BIND_ACCESSIBILITY_SERVICE)
    AddPermission(android.permission.BIND_APPWIDGET)
    AddPermission(android.permission.BIND_DEVICE_ADMIN)
    AddPermission(android.permission.BIND_INPUT_METHOD)
    AddPermission(android.permission.BIND_REMOTEVIEWS)
    AddPermission(android.permission.BIND_TEXT_SERVICE)
    AddPermission(android.permission.BIND_VPN_SERVICE)
    AddPermission(android.permission.BIND_WALLPAPER)
    AddPermission(android.permission.BLUETOOTH)
    AddPermission(android.permission.BLUETOOTH_ADMIN)
    AddPermission(android.permission.BRICK)
    AddPermission(android.permission.BROADCAST_PACKAGE_REMOVED)
    AddPermission(android.permission.BROADCAST_SMS)
    AddPermission(android.permission.BROADCAST_STICKY)
    AddPermission(android.permission.BROADCAST_WAP_PUSH)
    AddPermission(android.permission.CALL_PHONE)
    AddPermission(android.permission.CALL_PRIVILEGED)
    AddPermission(android.permission.CAMERA)
    AddPermission(android.permission.CHANGE_COMPONENT_ENABLED_STATE)
    AddPermission(android.permission.CHANGE_CONFIGURATION)
    AddPermission(android.permission.CHANGE_NETWORK_STATE)
    AddPermission(android.permission.CHANGE_WIFI_MULTICAST_STATE)
    AddPermission(android.permission.CHANGE_WIFI_STATE)
    AddPermission(android.permission.CLEAR_APP_CACHE)
    AddPermission(android.permission.CLEAR_APP_USER_DATA)
    AddPermission(android.permission.CONTROL_LOCATION_UPDATES)
    AddPermission(android.permission.DELETE_CACHE_FILES)
    AddPermission(android.permission.DELETE_PACKAGES)
    AddPermission(android.permission.DEVICE_POWER)
    AddPermission(android.permission.DIAGNOSTIC)
    AddPermission(android.permission.DISABLE_KEYGUARD)
    AddPermission(android.permission.DUMP)
    AddPermission(android.permission.EXPAND_STATUS_BAR)
    AddPermission(android.permission.FACTORY_TEST)
    AddPermission(android.permission.FLASHLIGHT)
    AddPermission(android.permission.FORCE_BACK)
    AddPermission(android.permission.GET_ACCOUNTS)
    AddPermission(android.permission.GET_PACKAGE_SIZE)
    AddPermission(android.permission.GET_TASKS)
    AddPermission(android.permission.GLOBAL_SEARCH)
    AddPermission(android.permission.HARDWARE_TEST)
    AddPermission(android.permission.INJECT_EVENTS)
    AddPermission(android.permission.INSTALL_LOCATION_PROVIDER)
    AddPermission(android.permission.INSTALL_PACKAGES)
    AddPermission(android.permission.INTERNAL_SYSTEM_WINDOW)
    AddPermission(android.permission.INTERNET)
    AddPermission(android.permission.KILL_BACKGROUND_PROCESSES)
    AddPermission(android.permission.MANAGE_ACCOUNTS)
    AddPermission(android.permission.MANAGE_APP_TOKENS)
    AddPermission(android.permission.MASTER_CLEAR)
    AddPermission(android.permission.MODIFY_AUDIO_SETTINGS)
    AddPermission(android.permission.MODIFY_PHONE_STATE)
    AddPermission(android.permission.MOUNT_FORMAT_FILESYSTEMS)
    AddPermission(android.permission.MOUNT_UNMOUNT_FILESYSTEMS)
    AddPermission(android.permission.NFC)
    AddPermission(android.permission.PERSISTENT_ACTIVITY)
    AddPermission(android.permission.PROCESS_OUTGOING_CALLS)
    AddPermission(android.permission.READ_CALENDAR)
    AddPermission(android.permission.READ_CALL_LOG)
    AddPermission(android.permission.READ_CONTACTS)
    AddPermission(android.permission.READ_EXTERNAL_STORAGE)
    AddPermission(android.permission.READ_FRAME_BUFFER)
    AddPermission(android.permission.READ_HISTORY_BOOKMARKS)
    AddPermission(android.permission.READ_INPUT_STATE)
    AddPermission(android.permission.READ_LOGS)
    AddPermission(android.permission.READ_PHONE_STATE)
    AddPermission(android.permission.READ_PROFILE)
    AddPermission(android.permission.READ_SMS)
    AddPermission(android.permission.READ_SOCIAL_STREAM)
    AddPermission(android.permission.READ_SYNC_SETTINGS)
    AddPermission(android.permission.READ_SYNC_STATS)
    AddPermission(android.permission.READ_USER_DICTIONARY)
    AddPermission(android.permission.REBOOT)
    AddPermission(android.permission.RECEIVE_BOOT_COMPLETED)
    AddPermission(android.permission.RECEIVE_MMS)
    AddPermission(android.permission.RECEIVE_SMS)
    AddPermission(android.permission.RECEIVE_WAP_PUSH)
    AddPermission(android.permission.RECORD_AUDIO)
    AddPermission(android.permission.REORDER_TASKS)
    AddPermission(android.permission.RESTART_PACKAGES)
    AddPermission(android.permission.SEND_SMS)
    AddPermission(android.permission.SET_ACTIVITY_WATCHER)
    AddPermission(android.permission.SET_ALARM)
    AddPermission(android.permission.SET_ALWAYS_FINISH)
    AddPermission(android.permission.SET_ANIMATION_SCALE)
    AddPermission(android.permission.SET_DEBUG_APP)
    AddPermission(android.permission.SET_ORIENTATION)
    AddPermission(android.permission.SET_POINTER_SPEED)
    AddPermission(android.permission.SET_PREFERRED_APPLICATIONS)
    AddPermission(android.permission.SET_PROCESS_LIMIT)
    AddPermission(android.permission.SET_TIME)
    AddPermission(android.permission.SET_TIME_ZONE)
    AddPermission(android.permission.SET_WALLPAPER)
    AddPermission(android.permission.SET_WALLPAPER_HINTS)
    AddPermission(android.permission.SIGNAL_PERSISTENT_PROCESSES)
    AddPermission(android.permission.STATUS_BAR)
    AddPermission(android.permission.SUBSCRIBED_FEEDS_READ)
    AddPermission(android.permission.SUBSCRIBED_FEEDS_WRITE)
    AddPermission(android.permission.SYSTEM_ALERT_WINDOW)
    AddPermission(android.permission.UPDATE_DEVICE_STATS)
    AddPermission(android.permission.USE_CREDENTIALS)
    AddPermission(android.permission.USE_SIP)
    AddPermission(android.permission.VIBRATE)
    AddPermission(android.permission.WAKE_LOCK)
    AddPermission(android.permission.WRITE_APN_SETTINGS)
    AddPermission(android.permission.WRITE_CALENDAR)
    AddPermission(android.permission.WRITE_CALL_LOG)
    AddPermission(android.permission.WRITE_CONTACTS)
    AddPermission(android.permission.WRITE_EXTERNAL_STORAGE   )
    AddPermission(android.permission.WRITE_GSERVICES   )
    AddPermission(android.permission.WRITE_HISTORY_BOOKMARKS)
    AddPermission(android.permission.WRITE_PROFILE)
    AddPermission(android.permission.WRITE_SECURE_SETTINGS)
    AddPermission(android.permission.WRITE_SETTINGS)
    AddPermission(android.permission.WRITE_SMS)
    AddPermission(android.permission.WRITE_SOCIAL_STREAM)
    AddPermission(android.permission.WRITE_SYNC_SETTINGS)
    AddPermission(android.permission.WRITE_USER_DICTIONARY)
  7. Erel

    Erel Administrator Staff Member Licensed User

    This is a system permission you cannot add it to a standard application.

    Android doesn't allow it.
  8. fabio borges

    fabio borges Member Licensed User

    Hello...
    Hummm.. Right...
    A program similar is "App Quarantine", but need SuperUser to get permission... Can i use a "addPermission" android function by "reflector" to give more permission?

    Code:
    addPermission(PermissionInfo info)
    Add a new dynamic permission 
    to the system.
    Or maybe can i use "command line" ?

    Have a possibility to get this permission by "standard" mode?
    Thanks
  9. Erel

    Erel Administrator Staff Member Licensed User

    No. You cannot add system permissions on unrooted devices. There is no way around it.
  10. fabio borges

    fabio borges Member Licensed User

    Hum... Look, i installed the SuperUser App to get permission in "App Quarantine" but if i execute my program the problem persist, SecurityException and no request access permission...

    Look:
    Code:
    Sub Process_Globals
    End Sub

    Sub Globals
    End Sub

    Sub Activity_Create(FirstTime As Boolean)
       
    Dim btnSetar As Button
       btnSetar.Initialize(
    "btnSetar")
       btnSetar.Text = 
    "Setar"
       
       Activity.AddView(btnSetar,
    35%x,45%y,120dip,50dip)
       
    End Sub

    Sub btnSetar_Click

    Dim args(1),args2(3), pack() As Object
    Dim Obj1, Obj2, Obj3, Obj4, Obj5, Obj6 As Reflector
    Dim size, i, flags, count As Int
    Dim Types(1),Types2(3), msg, name As String
    Obj1.Target = Obj1.GetContext
    Obj1.Target = Obj1.RunMethod(
    "getPackageManager"' PackageManager
    Obj2.Target = Obj1.RunMethod2("getInstalledPackages"0"java.lang.int"' List<PackageInfo>
    size = Obj2.RunMethod("size")
    For i = 0 To size -1
        Obj3.Target = Obj2.RunMethod2(
    "get", i, "java.lang.int"' PackageInfo
        name = "PackName: "&Obj3.GetField("packageName")
        Obj4.Target = Obj3.GetField(
    "applicationInfo"' ApplicationInfo        
        flags = Obj4.GetField("flags")    
        args(
    0) = Obj4.Target
        Types(
    0) = "android.content.pm.ApplicationInfo" 
        name = name & 
    " - Label: " &Obj1.RunMethod4("getApplicationLabel", args, Types)
       msg = msg & name & 
    " : " & flags & CRLF
        count = count + 
    1   
       
    If Obj1.RunMethod4("getApplicationLabel", args, Types) == "Reflector Demo" Then
          args2(
    0) = Obj3.GetField("packageName")
          args2(
    1) = 2
          args2(
    2) = 0
          Types2(
    0) = "java.lang.String"
          Types2(
    1) = "java.lang.int"
          Types2(
    2) = "java.lang.int"
          Obj6.Target = Obj6.GetContext
          Obj6.Target = Obj6.RunMethod(
    "getPackageManager")
          Obj6.Target = Obj6.RunMethod4(
    "setApplicationEnabledSetting", args2, Types2)
          
    ToastMessageShow("ENNNTROU IF",True)
       
    End If
        
    Next    
    Msgbox(msg,count) 

    End Sub

Share This Page

Loading...