Samsung.Developer Qualys
Sep 17, 2018
1:02 pm

License on Samsung Galaxy s5 device not getting activated

Hi,

I am trying to activate license on Samsung Galaxy  S5 device but it is getting stuck and in logs I am getting 

09-17 18:09:42.657 2202-5184/? W/EnterpriseLicenseService: KLM activation is already in process.

I used the below methods to activate license:

EnterpriseLicenseManager#activateLicense(licenseKey);
KnoxEnterpriseLicenseManager#activateLicense(licenseKey);

 

Below broadcast actions never get invoke

1. com.samsung.android.knox.intent.action.KNOX_LICENSE_STATUS

2. com.samsung.android.knox.intent.action.LICENSE_STATUS

 

Device specification

OS version 4.4.2 

Model Number SM-G900P

 

Thank you

 

Similar topics

No similar topics found.
Jenna Slomowitz
Sep 18, 2018
11:24 pm

Hello, 

For older devices you need to activate a backwards compatibility key. Please try using our sample app.

Best regards,

Jenna

 

Samsung.Developer Qualys
Sep 20, 2018
12:10 pm

Hello,

I have followed steps mention in sample app, but still i am getting same error in a backwards compatibility sample app. 

Below logs i am getting while activating ELM License.

 DexOpt: couldn't find static field Lcom/sec/enterprise/knox/EnterpriseKnoxManager$EnterpriseKnoxSdkVersion;.KNOX_ENTERPRISE_SDK_VERSION_2_5_1
09-20 19:33:58.584 10765-10765/com.samsung.knox.example.compatibility W/dalvikvm: VFY: unable to resolve static field 10659 (KNOX_ENTERPRISE_SDK_VERSION_2_5_1) in Lcom/sec/enterprise/knox/EnterpriseKnoxManager$EnterpriseKnoxSdkVersion;
09-20 19:33:58.584 10765-10765/com.samsung.knox.example.compatibility D/dalvikvm: VFY: replacing opcode 0x62 at 0x0095
    DexOpt: couldn't find static field Lcom/sec/enterprise/knox/EnterpriseKnoxManager$EnterpriseKnoxSdkVersion;.KNOX_ENTERPRISE_SDK_VERSION_2_6
09-20 19:33:58.584 10765-10765/com.samsung.knox.example.compatibility W/dalvikvm: VFY: unable to resolve static field 10660 (KNOX_ENTERPRISE_SDK_VERSION_2_6) in Lcom/sec/enterprise/knox/EnterpriseKnoxManager$EnterpriseKnoxSdkVersion;
09-20 19:33:58.584 10765-10765/com.samsung.knox.example.compatibility D/dalvikvm: VFY: replacing opcode 0x62 at 0x00a1
    DexOpt: couldn't find static field Lcom/sec/enterprise/knox/EnterpriseKnoxManager$EnterpriseKnoxSdkVersion;.KNOX_ENTERPRISE_SDK_VERSION_2_7
09-20 19:33:58.584 10765-10765/com.samsung.knox.example.compatibility W/dalvikvm: VFY: unable to resolve static field 10661 (KNOX_ENTERPRISE_SDK_VERSION_2_7) in Lcom/sec/enterprise/knox/EnterpriseKnoxManager$EnterpriseKnoxSdkVersion;
09-20 19:33:58.594 10765-10765/com.samsung.knox.example.compatibility D/dalvikvm: VFY: replacing opcode 0x62 at 0x00ad
09-20 19:33:58.594 10765-10765/com.samsung.knox.example.compatibility I/dalvikvm: Could not find method android.app.enterprise.EnterpriseDeviceManager.getFirewall, referenced from method com.samsung.android.knox.EnterpriseDeviceManager.getFirewall
09-20 19:33:58.594 10765-10765/com.samsung.knox.example.compatibility W/dalvikvm: VFY: unable to resolve virtual method 668: Landroid/app/enterprise/EnterpriseDeviceManager;.getFirewall ()Lcom/sec/enterprise/firewall/Firewall;
09-20 19:33:58.594 10765-10765/com.samsung.knox.example.compatibility D/dalvikvm: VFY: replacing opcode 0x6e at 0x0014
09-20 19:33:58.604 10765-10765/com.samsung.knox.example.compatibility I/dalvikvm: Could not find method android.app.enterprise.EnterpriseDeviceManager.getSPDControlPolicy, referenced from method com.samsung.android.knox.EnterpriseDeviceManager.getSPDControlPolicy
09-20 19:33:58.604 10765-10765/com.samsung.knox.example.compatibility W/dalvikvm: VFY: unable to resolve virtual method 677: Landroid/app/enterprise/EnterpriseDeviceManager;.getSPDControlPolicy ()Lcom/sec/enterprise/spd/SPDControlPolicy;
09-20 19:33:58.604 10765-10765/com.samsung.knox.example.compatibility D/dalvikvm: VFY: replacing opcode 0x6e at 0x000c
09-20 19:33:58.604 10765-10765/com.samsung.knox.example.compatibility D/EnterpriseDeviceManager: ContainerId: 0
09-20 19:33:58.624 10765-10765/com.samsung.knox.example.compatibility D/MainActivity: Activating device administrator...
09-20 19:33:59.744 10765-10765/com.samsung.knox.example.compatibility D/skia: GFXPNG PNG bitmap created width:90 height:90 bitmap id is 275 
09-20 19:33:59.754 10765-10765/com.samsung.knox.example.compatibility D/MainActivity: Device administrator activated.
09-20 19:34:02.764 10765-10765/com.samsung.knox.example.compatibility D/MainActivity: Activating ELM license...

Thank you
Jenna Slomowitz
Sep 25, 2018
4:31 pm

Hello,

Are you using the Knox SDK or one of the legacy SDKs, like Knox Standard SDK.

Best regards,

Jenna

 

Samsung.Developer Qualys
Sep 26, 2018
12:33 pm

Hello,

We are using Knox SDK v3.2

I tried all the steps mentioned in the link https://seap.samsung.com/html-docs/knox-migration/Content/support-older-...
and we are getting Exception "Unable to start receiver com.samsung.android.knox.IntentConverterReceiver: java.lang.SecurityException: Permission Denial" while activating licenses.
Below are logs of devices

09-26 17:04:05.207 9459-9459/? D/ENTM:DataBaseUtils: getLicenseTypeByPkgName().pkgName: com.qualys.android.samsung
09-26 17:04:05.215 9459-9459/? D/ENTM:DataSource: Fetched Data from data base count : 0
09-26 17:04:05.217 9459-9459/? D/ENTM:DataBaseUtils: getLicenseStatusByPkgName().pkgName: com.qualys.android.samsung
09-26 17:04:05.224 9459-9459/? D/ENTM:DataSource: Fetched Data from data base count : 0
09-26 17:04:05.226 9459-9459/? D/ENTM:ELMBeansCreator: permissionProcessType: -1| LicenseStatus : -1
    getELMActivationBean().attestationVerdict: 0
09-26 17:04:05.226 9459-9459/? I/ENTM:ELMBeansCreator: getELMActivationBean().END
09-26 17:04:05.226 9459-9459/? I/ENTM:LMNetworkResponse(634): NetworkResponseProcess().END
09-26 17:04:05.226 9459-9459/? I/ENTM:LMAsyncTask(634): onPostExecute().END
09-26 17:04:05.226 9459-9459/? I/ENTM:LicenseEngine: ServiceHandler().START
09-26 17:04:05.226 9459-9459/? D/ENTM:LicenseEngine: ServiceHandler.handleMessage( ELM_ACTIVATE_RESPONSE ). 
09-26 17:04:05.227 9459-9459/? D/ENTM:ELMActivationModule: processRegisterResponse(). Error:Null. Status:success
09-26 17:04:05.227 9459-9459/? I/ENTM:ErrorMapper: getELMErrorDescription: err_code = 0
09-26 17:04:05.229 9459-9459/? D/ENTM:ErrorMapper: ELM >> MDM error code: 0|success
09-26 17:04:05.229 9459-9459/? I/ENTM:ModuleBase: getResponseStatusVaule( status:success )
09-26 17:04:05.229 9459-9459/? D/ENTM:ELMActivationModule: processRegisterResponse():SUCCESS - Status: success
09-26 17:04:05.230 9459-9459/? I/ENTM:ELMActivationModule: processELMActivationSuccess().START
09-26 17:04:05.232 9459-9459/? D/ENTM:ELMActivationModule: processELMActivationSuccess(): RO.getLicenseType(): PRD
09-26 17:04:05.232 9459-9459/? I/ENTM:KLMUtils: SystemBroadcast(): ENABLE
09-26 17:04:05.233 3656-5100/? D/PackageManager: setEnabledSetting : userId = 0 packageName = com.samsung.klmsagent cmp = com.samsung.klmsagent.listner.SystemIntentReceiver newState = 1 callingPackage = 10036/com.samsung.klmsagent
09-26 17:04:05.240 9459-9459/? I/ENTM:KLMAlarmManager: enableELMValidationAlarm(): instanceID: 114284943 |intervalMilis: 604800000
09-26 17:04:05.244 3656-5100/? D/SamsungAlarmManager: setInexact Intent (T:0/F:0/AC:false) 20181003T170405 - CU:10036/CP:9459
09-26 17:04:05.245 9459-9459/? I/ENTM:KLMAlarmManager: enableELMValidationAlarm().NextAlarm: Wed Oct 03 17:04:05 GMT+05:30 2018
    sendPPVersion().BEGIN: Package: com.samsung.android.SettingsReceiver | PPVersion: {"KO":"1","GDPR":"3","GLOBAL":"1"}
09-26 17:04:05.247 9459-9459/? D/ENTM:KLMAlarmManager: sendPPVersion().END: Intent { act=com.samsung.android.knox.intent.action.PRIVACY_NOTICE pkg=com.samsung.android.SettingsReceiver (has extras) }, Bundle[{version={"KO":"1","GDPR":"3","GLOBAL":"1"}}]
09-26 17:04:05.247 9459-9459/? I/ENTM:KLMAlarmManager: sendPPVersion().BEGIN: Package: com.samsung.android.knox.containeragent | PPVersion: {"KO":"1","GDPR":"3","GLOBAL":"1"}
09-26 17:04:05.249 9459-9459/? D/ENTM:KLMAlarmManager: sendPPVersion().END: Intent { act=com.samsung.android.knox.intent.action.PRIVACY_NOTICE pkg=com.samsung.android.knox.containeragent (has extras) }, Bundle[{version={"KO":"1","GDPR":"3","GLOBAL":"1"}}]
09-26 17:04:05.249 9459-9459/? I/ENTM:KLMAlarmManager: enablePPAlarm(): intervalMilis: 604800000
09-26 17:04:05.255 9271-9271/? D/KLMSReceiver: onReceive com.samsung.android.knox.intent.action.PRIVACY_NOTICE
09-26 17:04:05.255 9271-9271/? I/KLMSReceiver: PP update notice intent received
09-26 17:04:05.255 9271-9271/? D/KLMSReceiver: version string: {"KO":"1","GDPR":"3","GLOBAL":"1"}
09-26 17:04:05.260 9459-9459/? I/ENTM:KLMAlarmManager: enablePPAlarm().NextAlarm: Wed Oct 03 17:04:05 GMT+05:30 2018
09-26 17:04:05.260 9459-9459/? I/ENTM:MDMBridge: getAllLicenseInfo()
09-26 17:04:05.263 9459-9459/? I/ENTM:DataBaseUtils: checkKnoxLicenseActivationRecord()
09-26 17:04:05.274 9459-9459/? D/ENTM:DataSource: Fetched Data from data base count : 0
09-26 17:04:05.279 9459-9459/? I/ENTM:KLMAlarmManager: enableLogUploadAlarm().nextTime: 3600000
09-26 17:04:05.284 3656-5100/? D/SamsungAlarmManager: setInexact Intent (T:0/F:0/AC:false) 20180926T180405 - CU:10036/CP:9459
09-26 17:04:05.285 9459-9459/? I/ENTM:KLMAlarmManager: enableLogUploadAlarm().NextAlarm: Wed Sep 26 18:04:05 GMT+05:30 2018
09-26 17:04:05.285 9459-9459/? I/ENTM:ELMActivationModule: processELMActivationSuccess().END
09-26 17:04:05.285 9459-9459/? I/ENTM:ErrorMapper: getELMErrorDescription: err_code = 0
09-26 17:04:05.286 9459-9459/? D/ENTM:ErrorMapper: ELM >> MDM error code: 0|success
09-26 17:04:05.286 9459-9459/? I/ENTM:MDMBridge: processLicenseActivationResponseforELM( pkgName:com.qualys.android.samsung, pkgVer:1.1, status:success, instanceId:114284943, permGroup:SAFE, req_pkgName:com.qualys.android.samsung, attestation_status:0 )
09-26 17:04:05.293 3656-5100/? W/EnterpriseLicenseService: processLicenseActivationResponse(): ret = true
09-26 17:04:05.293 3656-5100/? I/PackageManager: setLicensePermissions 
09-26 17:04:05.294 3656-5100/? D/AASAinstall: there is not AASApackages.xml file
09-26 17:04:05.299 3656-5100/? I/PackageManager: setLicensePermissions : packageName = com.qualys.android.samsung({com.mobeam.barcodeService=Package{57a8565 com.mobeam.barcodeService}, com.samsung.android.provider.filterprovider=Package{aedc23a com.samsung.android.provider.filterprovider}, com.monotype.android.font.rosemary=Package{b458eeb com.monotype.android.font.rosemary}, com.sec.android.app.DataCreate=Package{2eba448 com.sec.android.app.DataCreate}, com.android.cts.priv.ctsshim=Package{21312e1 com.android.cts.priv.ctsshim}, com.gd.mobicore.pa=Package{ce5c806 com.gd.mobicore.pa}, com.sec.android.widgetapp.samsungapps=Package{b6c2ec7 com.sec.android.widgetapp.samsungapps}, com.google.android.youtube=Package{83abcf4 com.google.android.youtube}, com.samsung.android.app.galaxyfinder=Package{f4cfc1d com.samsung.android.app.galaxyfinder}, com.sec.location.nsflp2=Package{4065e92 com.sec.location.nsflp2}, com.samsung.android.themestore=Package{e72f063 com.samsung.android.themestore}, com.sec.android.app.chromecustomizations=Package{bc0b460 com.sec.android.app.chromecustomizations}, com.samsung.android.app.aodservice=Package{a423d19 com.samsung.android.app.aodservice}, com.samsung.android.app.cocktailbarservice=Package{727d1de com.samsung.android.app.cocktailbarservice}, com.google.android.ext.services=Package{d9a2fbf com.google.android.ext.services}, com.android.providers.telephony=Package{1ecb68c com.android.providers.telephony}, com.sec.android.app.parser=Package{db091d5 com.sec.android.app.parser}, com.samsung.svoice.sync=Package{5b2dea com.samsung.svoice.sync}, com.google.android.googlequicksearchbox=Package{bcc08db com.google.android.googlequicksearchbox}, com.samsung.android.calendar=Package{4f4af78 com.samsung.android.calendar}, com.cnn.mobile.android.phone.edgepanel=Package{8757651 com.cnn.mobile.android.phone.edgepanel}, com.android.providers.calendar=Package{7b63eb6 com.android.providers.calendar}, com.osp.app.signin=Package{67857b7 com.osp.app.signin}, com.samsung.clipboardsaveservice=Package{a814b24 com.samsung.clipboardsaveservice}, com.sec.automation=Package{fca268d com.sec.automation}, com.android.providers.media=Package{edf9042 com.android.providers.media}, com.cisco.anyconnect.vpn.android.avf=Package{830b853 com.cisco.anyconnect.vpn.android.avf}, com.google.android.onetimeinitializer=Package{819f590 com.google.android.onetimeinitializer}, com.google.android.ext.shared=Package{93f9e89 com.google.android.ext.shared}, com.android.wallpapercropper=Package{95a6e8e com.android.wallpapercropper}, com.samsung.android.provider.shootingmodeprovider=Package{90486af com.samsung.android.provider.shootingmodeprovider}, com.samsung.android.app.withtv=Package{250dabc com.samsung.android.app.withtv}, com.samsung.android.smartmirroring=Package{87a9a45 com.samsung.android.smartmirroring}, com.skms.android.agent=Package{d92e59a com.skms.android.agent}, com.sec.android.app.safetyassurance=Package{89cdecb com.sec.android.app.safetyassurance}, com.samsung.android.incallui=Package{2aee6a8 com.samsung.android.incallui}, com.samsung.android.knox.containercore=Package{caf95c1 com.samsung.android.knox.containercore}, com.sec.factory.camera=Package{aa9c166 com.sec.factory.camera}, com.sec.vsimservice=Package{e189ca7 com.sec.vsimservice}, org.simalliance.openmobileapi.service=Package{5fc554 org.simalliance.openmobileapi.service}, com.sec.usbsettings=Package{9deccfd com.sec.usbsettings}, com.samsung.android.easysetup=Package{f008df2 com.samsung.android.easysetup}, com.android.documentsui=Package{9a85c43 com.android.documentsui}, com.android.externalstorage=Package{79de2c0 com.android.externalstorage}, com.sec.android.easyonehand=Package{9d03bf9 com.sec.android.easyonehand}, com.sec.factory=Package{b85973e com.sec.factory}, com.samsung.android.provider.stickerprovider=Package{3ea799f com.samsung.android.provider.stickerprovider}, com.android.htmlviewer=Package{bde6aec com.android.htmlviewer}, com.whatsapp=Package{cf9eb5 com.whatsapp}, com.samsung.android.app.sbrowseredge=Package{fbfe94a com.samsung.android.app.sbrowseredge}, com.android.compan
09-26 17:04:05.302 3656-5100/? D/EnterpriseLicenseService: getPermissions() may new namespace 
09-26 17:04:05.304 3656-5100/? D/EnterpriseLicenseService: getPermissions() - deserializeObject
09-26 17:04:05.467 3656-5100/? D/UcmService: checkCallerPermissionFor is called for method-notifyLicenseStatus
    notifyLicenseStatus packageName com.qualys.android.samsung,status-success, errorCode-0
    checkESEPermission
09-26 17:04:05.504 3656-3958/? D/UcmService: MSG_PACKAGE_LICENSE_UPDATE packageName-com.qualys.android.samsung,status-success, errorCode-0
09-26 17:04:05.505 3656-3958/? D/UniversalCredentialManagerService: checkCallerPermissionFor is called for method-notifyLicenseStatus
    notifyLicenseStatus : event-1, packageName-com.qualys.android.samsung
09-26 17:04:05.505 3656-3958/? D/UcmService:   notifyLicenseStatus Activate status- false
    *****refreshAgentList userId-0 is called***
    resolveAllowedAgents for user 0
09-26 17:04:05.506 3656-3958/? D/UcmService: found com.samsung.ucs.agent.boot
    found com.samsung.ucs.agent.ese
    resolveAllowedAgentsLegacy for user 0
    event 1, activatedPackage-com.qualys.android.samsung,expiredPackage-null
    mPersistentServices size is 0
    -------Processing started for agentPackageName----- -com.samsung.ucs.agent.boot
09-26 17:04:05.507 3656-3958/? D/UcmService:   agentPackageName -com.samsung.ucs.agent.boot is an active plugin
      Check if caller has UCS Plugin permission...
    enforcePermission : com.samsung.ucs.agent.boot
    KNOX_UCM_PLUGIN_PERMISSION is granted
      Agent has UCS PLUGIN permission. Processing further...
      agentPackageName com.samsung.ucs.agent.boot is system storage. Checking system signature
09-26 17:04:05.510 3656-5100/? D/KnoxMUMContainerPolicy: License status updated
09-26 17:04:05.510 3656-5100/? D/ClientCertificateManager Service: notifyLicenseStatus call: double EnterpriseLicenseService notification contract
09-26 17:04:05.510 3656-3656/? I/KnoxMUMContainerPolicy: MSG_LICENSE_STATE_CHANGED received
09-26 17:04:05.510 3656-3958/? D/UcmService:   Signature match
09-26 17:04:05.510 3656-3656/? D/KnoxMUMContainerPolicy: package: com.qualys.android.samsung
09-26 17:04:05.511 3656-3958/? D/UcmService:   Valid system storage found is com.samsung.ucs.agent.boot
    UCM ODE is not enabled
    existUCMKeyguardProp
    Do not need to bind boot plugin service
    -------Processing started for agentPackageName----- -com.samsung.ucs.agent.ese
      agentPackageName -com.samsung.ucs.agent.ese is an active plugin
      Check if caller has UCS Plugin permission...
    enforcePermission : com.samsung.ucs.agent.ese
09-26 17:04:05.512 3656-3958/? D/UcmService: KNOX_UCM_PLUGIN_PERMISSION is granted
      Agent has UCS PLUGIN permission. Processing further...
      agentPackageName com.samsung.ucs.agent.ese is system storage. Checking system signature
09-26 17:04:05.513 3656-3958/? D/UcmService:   Signature match
      Valid system storage found is com.samsung.ucs.agent.ese
    Do not need to bind eSE Service
    event 1, activatedPackage-com.qualys.android.samsung,expiredPackage-null
    mPersistentServices size is 0
09-26 17:04:05.520 3656-3958/? D/UcmService: readPersistentServicesLocked is called...
09-26 17:04:05.523 9427-9427/? D/Q Samsung Services: main | LicenceStatusReceiver | #######All IntentIntent { act=edm.intent.action.license.status flg=0x10 pkg=com.qualys.android.samsung cmp=com.qualys.android.samsung/.receiver.LicenceStatusReceiver (has extras) } Bundle[com.sec.enterprise.intent.extra.LICENSE_ATTESTATION_STATUS=0, edm.intent.extra.license.result_type=800, edm.intent.extra.license.status=success, edm.intent.extra.license.errorcode=0, edm.intent.extra.license.perm_group=SAFE]
09-26 17:04:05.533 3656-5100/? D/EnterpriseLicenseService: getPermissions() may new namespace 
09-26 17:04:05.535 3656-5100/? D/EnterpriseLicenseService: getPermissions() - deserializeObject
09-26 17:04:05.535 3656-5100/? D/EnterpriseDeviceManagerService: Enterprise Device Admins [com.qualys.android.samsung]
09-26 17:04:05.539 3656-5102/? W/ActivityManager: Permission Denial: not allowed to send broadcast com.samsung.android.knox.intent.action.LICENSE_STATUS from pid=9427, uid=10392
09-26 17:04:05.541 9427-9427/? D/AndroidRuntime: Shutting down VM
    
    
    --------- beginning of crash
09-26 17:04:05.542 9427-9427/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.qualys.android.samsung, PID: 9427
    java.lang.RuntimeException: Unable to start receiver com.samsung.android.knox.IntentConverterReceiver: java.lang.SecurityException: Permission Denial: not allowed to send broadcast com.samsung.android.knox.intent.action.LICENSE_STATUS from pid=9427, uid=10392
        at android.app.ActivityThread.handleReceiver(ActivityThread.java:3399)
        at android.app.ActivityThread.-wrap18(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1780)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6944)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
     Caused by: java.lang.SecurityException: Permission Denial: not allowed to send broadcast com.samsung.android.knox.intent.action.LICENSE_STATUS from pid=9427, uid=10392
        at android.os.Parcel.readException(Parcel.java:1958)
        at android.os.Parcel.readException(Parcel.java:1904)
        at android.app.IActivityManager$Stub$Proxy.broadcastIntent(IActivityManager.java:5023)
        at android.app.ContextImpl.sendBroadcast(ContextImpl.java:960)
        at android.content.ContextWrapper.sendBroadcast(ContextWrapper.java:442)
        at android.content.ContextWrapper.sendBroadcast(ContextWrapper.java:442)
        at com.samsung.android.knox.IntentConverterReceiver.onReceive(Unknown Source:666)
        at android.app.ActivityThread.handleReceiver(ActivityThread.java:3392)
        at android.app.ActivityThread.-wrap18(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1780) 
        at android.os.Handler.dispatchMessage(Handler.java:105) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6944) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 

 

 

We are tring to activate KLM License on below mentioned devices also we  are migrating to Knox SDK v3.2
Device: Samsung Galexy S7 Edge 
Device Knox v3.1

Device: Samsung Galexy TAB A(2017)
Device Knox v2.8

Thank you

Jenna Slomowitz
Sep 26, 2018
5:46 pm

Hello, 

Please make sure that you are using an SKL key (it should start with KLM-06) and a Backwards Compatability key (this is different than just a regular ELM key). You only need to activate the backwards compatibility key on the S5 device, as the other two devices are newer. Please try running the sample app with these keys, and make sure to activate device admin. Let me know if you are getting the error across all three devices, or only on certain ones. Then, please send a dumpState of the devices encountering the error to jennatest862@gmail.com. Instuctions for taking a dumpstate

Best regards,

Jenna

Samsung.Developer Qualys
Sep 27, 2018
12:38 pm

Hello,

We have tried to use SKL key (that start with KLM-06) but we are getting error "Failed to validate key".

We are getting confused as you suggeeted we only need to activate the backwards compatibility key on Samsung S5.
but as per below link we need to activate both licenses (SKL and backward compatibility key). 
Link:https://seap.samsung.com/license-keys/how-to
Please suggest correct way to activate license on device.

And one more thing I want to know that how to determine on which device we need to activate backward compatibility key or SKL.

Also can you please help me, how to get knox verison present on device? 
With the help of this method(EnterpriseDeviceManager.html#getAPILevel()) we can find API level but it does not work on device Samsung S5.

Also we are getting hard time to load "My license keys by SDK " page 
Link:https://seap.samsung.com/license-keys

we are using various devices that containts all knox version from v1.0 to v3.2 

Thanks

Jenna Slomowitz
Oct 01, 2018
10:15 pm

Hello, 

As per the link "Devices with Knox v2.8 or later — These devices have the new License Agent, which requires the activation of only a single license key." Whereas "Devices with Knox v2.7 or earlier — These devices have an older version of the License Agent, which requires that you activate both the license key as well as a backwards-compatible key. I hope this clears up license activation. 

Yoy can also check the Knox version of a device manually, by going into settings and then software information. 

Do you have an error code for when the KLM key fails to activate?

Best regards,

Jenna

Samsung.Developer Qualys
Oct 03, 2018
1:45 pm

Hello 

Thanks for confirming the information about License activation.

We are able to resolve "Failed to validate key" error as it is binded to APK Public hash key.

 

But we are facing activation error, below are the steps we are following.

# Activation

- To activate License, I've call KnoxEnterpriseLicenseManager.activateLicense(KEY, getPackageName()) key ("start with KLM-06").

- To activate backward-compatibility key, we are using enterpriseLicenseManager#activateLicense(KEY, getPackageName()).

- After request license activation, acc to documenation we sholud receive one of the below mentioned actions in LicenseReceiver.

EnterpriseLicenseManager#ACTION_LICENSE_STATUS

KnoxEnterpriseLicenseManager.ACTION_LICENSE_STATUS

but we are not receiving any broadcast with above mentioned actions.

 

Please find attached google drive link for dumpstack of various devices on which we are getting above mentioned error while activating license.

Link:

https://drive.google.com/drive/folders/1UbljvS3RDm993B_BUWgSPTD_4qhtPt4l...

 

Can you please help me out with this.

 

One more thing I want to ask, I know we can check KNox version manually by going to the settings but is there any other programatic way to get knox version of device? 

 

Thanks

Jenna Slomowitz
Oct 03, 2018
10:25 pm

Hello,

The dumpStates show that all the licences are activating correctly except the S5. The error you are getting is a network error. Please make sure that the device has a strong internet connection. Also, please activate the SKL license first, and then the backwards compatibility key. Lastly, make sure to accept the EULA agreement, as the dumpstate shows that the user diagreed the EULA. Please take a new dumpstate of the S5 only following these steps. 

Best regards,

Jenna

Samsung.Developer Qualys
Oct 04, 2018
1:11 pm

Hello 

 

In below devices license getting activated but we are not getting prompt for EULA agreement 

Device: Samsung Galexy S7 Edge 

Device Knox v3.1

Device: Samsung Galexy TAB A(2017)

Device Knox v2.8

 

Device: Samsung Galexy TAB A(2017)

Device Knox v2.6

 

Also we are not getting license status broadcast, we are getting below exception. 

"java.lang.RuntimeException: Unable to start receiver com.samsung.android.knox.IntentConverterReceiver: 

java.lang.SecurityException: Permission Denial: not allowed to send broadcast com.samsung.android.knox.intent.action.KNOX_LICENSE_STATUS from pid=1774, uid=10216

    Unable to start receiver com.samsung.android.knox.IntentConverterReceiver: 

java.lang.SecurityException: Permission Denial: not allowed to send broadcast com.samsung.android.knox.intent.action.KNOX_LICENSE_STATUS from pid=1774, uid=10216"

 

For activation we are following below steps 

# Activation

1- To activate License, I've call KnoxEnterpriseLicenseManager.activateLicense(KEY, getPackageName()) key ("start with KLM-06").

2- Then to activate backward-compatibility key, we are using enterpriseLicenseManager#activateLicense(KEY, getPackageName()). (First call for SKL license activation)

3- We have registered broadcast receiver for below two actions, which listen actions and activate backward-compatibility key if device is below knox v2.8.(Second call for  backwards compatibility key)

EnterpriseLicenseManager#ACTION_LICENSE_STATUS

KnoxEnterpriseLicenseManager.ACTION_LICENSE_STATUS

 

Also we are facing issue in release build only, for your information we are using proguard so do we need to keep any classes, methods or fields ? 

we have keep following class "com.samsung.android.knox.IntentConverterReceiver".

 

#For S4 device we have tried with different network with good intenet connection(wifi) but still we are facing same issue.

this error we are getting while we are activating backward-compatibility key.

One more thing I want to ask, Can you please provide me in which case it throws network error?

Below link for dumstats:

https://drive.google.com/drive/folders/1CcRxF1xFhSGrhqqQhoL9H2wka2Q6B6cQ...

Thanks

Samsung.Developer Qualys
Oct 05, 2018
1:31 pm

Hello, 

 

In below devices license getting activated but we are not getting prompt for EULA agreement, is this expected or we are missing something

Device: Samsung Galexy S7 Edge 

Device Knox v3.1

 

Device: Samsung Galexy TAB A(2017)

Device Knox v2.6

 

we are getting EULA agreement for below devices

Samsung J7Pro(Knox v2.8) -  EULA agreement displayed

Samsung TAB A (SM-T385)(Knox v2.8) - EULA agreement  displayed

Samsung S4 (GT-I9500)(Knox v2.3) - EULA agreement  displayed

 

For activation we are following below steps 

# Activation

1- To activate License, I've call KnoxEnterpriseLicenseManager.activateLicense(KEY, getPackageName()) key ("start with KLM-06").

2- Then to activate backward-compatibility key, we are using enterpriseLicenseManager#activateLicense(KEY, getPackageName()).

3- We have registered broadcast receiver for below two actions, which listen actions and activate backward-compatibility key if device is below knox v2.8.

EnterpriseLicenseManager#ACTION_LICENSE_STATUS

KnoxEnterpriseLicenseManager.ACTION_LICENSE_STATUS

## CODE for our activation. 

 

 

#For S4 device we have tried with different network with good intenet connection(wifi) but still we are facing same issue.

this error we are getting while we are activating backward-compatibility key.

below are logs for S4 device

10-05 11:46:37.059 3868-3887/? D/elm: ELMEngine.ServiceHandler.handleMessage( REGISTER_REQUEST ). 

    processRegister:REGISTER_REQUEST

    RegisterRequestModule.processRegisterRequest().

    RegisterRequestModule.processRegisterRequest(). LicenseKey is PROD or ONS.

10-05 11:46:37.149 265-265/? W/EDMNativeHelper: EDMNativeHelperService is published

10-05 11:46:37.169 2059-2102/? E/MP-Decision: num online cores: 1 reqd : 2 available : 4 rq_depth:2.000000 hotplug_avg_load_dw: 50

    UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 rq:2.000000 seq:146.000000

10-05 11:46:37.179 3868-3887/? D/elm: JSON : getAPKHashString() PackageName : com.qualys.android.samsung HASH : WdtJVV7iDTN9HsxwQs7bJg==

    DataManager.compriseRegisterRequestData()

10-05 11:46:37.279 806-816/? D/dalvikvm: GC_FOR_ALLOC freed 2043K, 28% free 70292K/96664K, paused 202ms, total 202ms

10-05 11:46:37.279 806-816/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1482 com.android.server.am.ActivityStack.startPausingLocked:1006 com.android.server.am.ActivityStack.finishActivityLocked:3162 com.android.server.am.ActivityStack.requestFinishActivityLocked:2975 com.android.server.am.ActivityManagerService.finishActivity:4384 

10-05 11:46:37.279 1247-1247/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=-1 bt=false

10-05 11:46:37.289 806-1109/? V/SmartFaceService - 3rd party pause: onReceive [android.intent.action.ACTIVITY_STATE/com.sec.esdk.elm/pause]

10-05 11:46:37.300 806-1440/? D/SSRMv2:CustomFrequencyManagerService: acquireDVFSLockLocked : type : DVFS_MIN_LIMIT  frequency : 1350000  uid : 1000  pid : 806  pkgName : ACTIVITY_RESUME_BOOSTER@6

10-05 11:46:37.300 806-1440/? V/WindowOrientationListener: mSContextAutoRotationListener.getProposedRotation, mbResultFaceDectection: false

    mSContextAutoRotationListener.getProposedRotation, Rotation: -1

    mSContextAutoRotationListener.getProposedRotation, mbResultFaceDectection: false

    mSContextAutoRotationListener.getProposedRotation, Rotation: -1

10-05 11:46:37.300 12764-12764/? D/Q Samsung Services: main | SAFEHome | OnResume

10-05 11:46:37.300 3868-3887/? D/EnterpriseDeviceManager: ContainerId: 0

10-05 11:46:37.300 806-1440/? W/ActivityManager: mDVFSHelper.acquire()

10-05 11:46:37.300 806-1440/? V/WindowManager: rotationForOrientationLw(orient=1, last=0); user=0  sensorRotation=-1 mLidState=-1 mDockMode=0 mHdmiPlugged=false mAccelerometerDefault=false gripRotationLock=false

10-05 11:46:37.300 806-1440/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1482 com.android.server.am.ActivityStack.resumeTopActivityLocked:2182 com.android.server.am.ActivityStackSupervisor.resumeTopActivitiesLocked:3102 com.android.server.am.ActivityStack.completePauseLocked:1231 com.android.server.am.ActivityStack.activityPausedLocked:1092 

10-05 11:46:37.310 1247-1260/? D/KeyguardViewMediator: setHidden false

10-05 11:46:37.310 1247-1260/? D/KeyguardUpdateMonitor: sendKeyguardVisibilityChanged(true)

10-05 11:46:37.310 1247-1260/? D/KeyguardViewMediator: setHidden false

10-05 11:46:37.310 1247-1260/? D/KeyguardUpdateMonitor: sendKeyguardVisibilityChanged(true)

10-05 11:46:37.310 806-1440/? I/SpenGestureManager: setFocusWindow21040

10-05 11:46:37.310 1247-1247/? D/STATUSBAR-IconMerger: checkOverflow(432), More:false, Req:false Child:2

10-05 11:46:37.320 1247-14530/? D/KeyguardViewMediator: setHidden false

10-05 11:46:37.320 1247-14530/? D/KeyguardUpdateMonitor: sendKeyguardVisibilityChanged(true)

10-05 11:46:37.320 806-884/? D/PointerIcon: setMouseIconStyle1 pointerType: 1001iconType:101 flag:0

    setMouseCustomIcon IconType is same.101

    setHoveringSpenIconStyle1 pointerType: 10001iconType:1 flag:0

    setHoveringSpenCustomIcon IconType is same.1

10-05 11:46:37.320 806-1433/? D/EnterpriseDeviceManager: ContainerId: 0

10-05 11:46:37.320 806-947/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1468 com.android.internal.policy.impl.PhoneWindowManager.notifyToSSRM:5452 com.android.internal.policy.impl.PhoneWindowManager.access$200:168 com.android.internal.policy.impl.PhoneWindowManager$PolicyHandler.handleMessage:696 android.os.Handler.dispatchMessage:102 

10-05 11:46:37.320 806-1109/? V/SmartFaceService - 3rd party pause: onReceive [android.intent.action.ACTIVITY_STATE/com.qualys.android.samsung/resume]

10-05 11:46:37.320 806-947/? D/STATUSBAR-StatusBarManagerService: manageDisableList what=0x0 pkg=WindowManager.LayoutParams

10-05 11:46:37.330 806-1433/? D/RestrictionPolicy: isUseSecureKeypadEnabled : false

10-05 11:46:37.330 1247-6817/? D/KeyguardViewMediator: setHidden false

10-05 11:46:37.330 1247-6817/? D/KeyguardUpdateMonitor: sendKeyguardVisibilityChanged(true)

10-05 11:46:37.340 806-947/? D/EnterpriseDeviceManager: ContainerId: 0

10-05 11:46:37.340 806-2851/? D/SSRMv2:AirViewOnOff: DeviceInfo:: 00000000000

    SettingsAirViewInfo:: 000000000

10-05 11:46:37.340 806-13027/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1468 com.android.server.InputMethodManagerService$4.run:2747 java.lang.Thread.run:841 <bottom of call stack> <bottom of call stack> 

10-05 11:46:37.340 806-947/? D/RestrictionPolicy: isStatusBarExpansionAllowed : true

10-05 11:46:37.360 1247-1247/? D/PhoneStatusBar: Status bar WINDOW_STATE_HIDING

10-05 11:46:37.360 1247-1247/? D/KeyguardUpdateMonitor: handleKeyguardVisibilityChanged(1)

    handleKeyguardVisibilityChanged(1)

    handleKeyguardVisibilityChanged(1)

10-05 11:46:37.370 2059-2102/? E/MP-Decision: num online cores: 2 reqd : 4 available : 4 rq_depth:8.500000 hotplug_avg_load_dw: 116

    UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 rq:8.500000 seq:0.000000

    UP cpu:2 core_idx:2 Nw:2.700000 Tw:90 rq:8.500000 seq:98.000000

    UP cpu:3 core_idx:3 Nw:3.500000 Tw:90 rq:8.500000 seq:98.000000

10-05 11:46:37.370 1247-1247/? D/KeyguardUpdateMonitor: handleKeyguardVisibilityChanged(1)

10-05 11:46:37.370 3868-3887/? I/elm: RedirectionDataManager.isProduct_Ship() is true. GSLB goes to Production Server.

10-05 11:46:37.370 1247-1261/? D/KeyguardViewMediator: setHidden false

10-05 11:46:37.370 1247-1261/? D/KeyguardUpdateMonitor: sendKeyguardVisibilityChanged(true)

10-05 11:46:37.370 3868-3887/? I/elm: RedirectionDataManager.isProduct_Ship() is true. GSLB goes to Production Server.

10-05 11:46:37.370 3868-3887/? D/elm: RedirectionDataManager.setELMServerAddr().

10-05 11:46:37.380 1247-1260/? D/KeyguardViewMediator: setHidden false

10-05 11:46:37.380 1247-1260/? D/KeyguardUpdateMonitor: sendKeyguardVisibilityChanged(true)

10-05 11:46:37.380 3868-13035/? D/elm: GSLBManager.run :  Thread ID : 437 Server URI : https://gslb.secb2b.com/KnoxGSLB/lookup/elm

    GSLBManager.run :  Thread ID : 437  httpHost Proxy is NULL

10-05 11:46:37.380 1247-1247/? D/KeyguardUpdateMonitor: handleKeyguardVisibilityChanged(1)

    handleKeyguardVisibilityChanged(1)

10-05 11:46:37.380 806-2851/? D/SSRMv2:Monitor: SIOP:: AP = 380, Prev AP = 380, Duration = 10031, PST = 382

10-05 11:46:37.380 806-2851/? D/SSRMv2:AmoledAdjustTimer: prevTemp = 286, currTemp = 286, prevStep = 4, currStep = 4

10-05 11:46:37.390 278-484/? W/qdhwcomposer: Excessive delay reading vsync: took 1712 ms

10-05 11:46:37.400 1247-14530/? D/KeyguardViewMediator: setHidden false

10-05 11:46:37.400 1247-14530/? D/KeyguardUpdateMonitor: sendKeyguardVisibilityChanged(true)

10-05 11:46:37.400 278-6813/? I/SurfaceFlinger: id=524 Removed DonfirmDial (11/12)

10-05 11:46:37.400 1247-1247/? D/KeyguardUpdateMonitor: handleKeyguardVisibilityChanged(1)

10-05 11:46:37.400 278-413/? I/SurfaceFlinger: id=524 Removed DonfirmDial (-2/12)

10-05 11:46:37.400 1247-14528/? D/KeyguardViewMediator: setHidden false

10-05 11:46:37.400 1247-14528/? D/KeyguardUpdateMonitor: sendKeyguardVisibilityChanged(true)

10-05 11:46:37.400 1247-1247/? D/KeyguardUpdateMonitor: handleKeyguardVisibilityChanged(1)

10-05 11:46:37.550 3868-13035/? D/elm: GSLBManager.run :  Thread ID : 437 ResponseCode : 200

10-05 11:46:37.560 3868-3887/? D/elm: RedirectionDataManager.getELMServerAddr().

    RedirectionDataManager.getELMServerAddr() : Address=us-elm.secb2b.com:443

    RegisterRequestModule.processRegisterRequest(). ELM HTTPS Server Addr : us-elm.secb2b.com:443

10-05 11:46:37.560 3868-13037/? D/elm: HttpsManager.run : START Thread ID : 438 States = REGISTER_REQUEST

    HttpsManager.run :  Thread ID : 438 Server URI : HTTPS://us-elm.secb2b.com:443/elm/license/register

    HttpsManager.run :  Thread ID : 438  httpHost Proxy is NULL

10-05 11:46:37.620 2059-2102/? E/MP-Decision: num online cores: 4 reqd : 3 available : 4 rq_depth:0.000000 hotplug_avg_load_dw: 59

    DOWN cpu:3 core_idx:3 Ns:3.100000 Ts:240 rq:0.000000 seq:240.000000

10-05 11:46:37.670 2059-2102/? E/MP-Decision: num online cores: 3 reqd : 1 available : 4 rq_depth:0.000000 hotplug_avg_load_dw: 24

    DOWN cpu:2 core_idx:2 Ns:2.100000 Ts:240 rq:0.000000 seq:242.000000

    DOWN cpu:1 core_idx:1 Ns:1.100000 Ts:190 rq:0.000000 seq:242.000000

10-05 11:46:37.700 1247-6817/? D/KeyguardViewMediator: setHidden false

10-05 11:46:37.700 1247-6817/? D/KeyguardUpdateMonitor: sendKeyguardVisibilityChanged(true)

10-05 11:46:37.700 1247-1247/? D/KeyguardUpdateMonitor: handleKeyguardVisibilityChanged(1)

10-05 11:46:37.700 1247-1247/? D/PhoneStatusBar: Status bar WINDOW_STATE_HIDDEN

10-05 11:46:38.010 3868-13037/? D/elm: HttpsManager.run :  Thread ID : 438 ResponseCode : 200

10-05 11:46:38.030 3868-13037/? D/elm: HttpsManager.run :  Thread ID : 438 Process Response of REGISTER_REQUEST

10-05 11:46:38.030 3868-13037/? I/elm: TYPE:null

10-05 11:46:38.030 3868-13037/? E/elm: HttpsManager.run :  Thread ID : 438 General Exception was occurred "java.lang.NullPointerException"

10-05 11:46:38.030 3868-13037/? W/System.err: java.lang.NullPointerException

        at com.sec.esdk.elm.networkmanager.HttpsManager.run(HttpsManager.java:335)

10-05 11:46:38.030 3868-13037/? D/elm: HttpsManager : isHTTPSConnection() :  Thread ID : 438 

10-05 11:46:38.030 3868-13037/? I/elm: RedirectionDataManager.isProduct_Ship() is true. GSLB goes to Production Server.

10-05 11:46:38.030 3868-13037/? D/elm: RedirectionDataManager.getELMServerAddr().

    RedirectionDataManager.getELMServerAddr() : Address=us-elm.secb2b.com:80

10-05 11:46:38.040 3868-13046/? D/elm: HttpsManager.run : START Thread ID : 439 States = REGISTER_REQUEST

    HttpsManager.run :  Thread ID : 439 Server URI : http://us-elm.secb2b.com:80/elm/license/register

    HttpsManager.run :  Thread ID : 439  httpHost Proxy is NULL

10-05 11:46:38.060 3868-3873/? D/dalvikvm: GC_CONCURRENT freed 2023K, 22% free 21028K/26740K, paused 3ms+10ms, total 52ms

10-05 11:46:38.060 3868-13046/? D/dalvikvm: WAIT_FOR_CONCURRENT_GC blocked 7ms

10-05 11:46:38.290 1247-1247/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=-1 bt=false

10-05 11:46:38.290 1247-1247/? D/STATUSBAR-IconMerger: checkOverflow(432), More:false, Req:false Child:2

10-05 11:46:38.511 3868-13046/? D/elm: HttpsManager.run :  Thread ID : 439 ResponseCode : 200

10-05 11:46:38.521 3868-13046/? D/elm: HttpsManager.run :  Thread ID : 439 Process Response of REGISTER_REQUEST

10-05 11:46:38.521 3868-13046/? I/elm: TYPE:null

10-05 11:46:38.521 3868-13046/? E/elm: HttpsManager.run :  Thread ID : 439 General Exception was occurred "java.lang.NullPointerException"

10-05 11:46:38.521 3868-13046/? W/System.err: java.lang.NullPointerException

        at com.sec.esdk.elm.networkmanager.HttpsManager.run(HttpsManager.java:335)

10-05 11:46:38.521 3868-13046/? D/elm: HttpsManager : isHTTPSConnection() :  Thread ID : 439 

10-05 11:46:38.521 3868-13046/? I/elm: RedirectionDataManager.isProduct_Ship() is true. GSLB goes to Production Server.

10-05 11:46:38.521 3868-13046/? D/elm: RedirectionDataManager.getELMServerAddr().

    RedirectionDataManager.getELMServerAddr() : Address=us-elm.secb2b.com:80

    RedirectionDataManager.setELMServerAddr().

10-05 11:46:38.531 3868-13047/? D/elm: GSLBManager.run :  Thread ID : 440 Server URI : https://gslb.secb2b.com/KnoxGSLB/lookup/elm

    GSLBManager.run :  Thread ID : 440  httpHost Proxy is NULL

10-05 11:46:38.701 3868-13047/? D/elm: GSLBManager.run :  Thread ID : 440 ResponseCode : 200

10-05 11:46:38.701 3868-13046/? D/elm: HttpsManager : processHttpsManagerError() : START Thread ID : 439 

10-05 11:46:38.701 3868-3887/? D/elm: ELMEngine.ServiceHandler.handleMessage( REGISTER_RESPONSE ). 

    processRegister:REGISTER_RESPONSE

    RegisterResponseModule.processRegisterResponse(). Some value is null. Status change to fail

    ModuleBase.getResponseStatusVaule( status:fail )

    RegisterResponseModule.processRegisterResponse(). FAIL switch. Status:fail

10-05 11:46:38.701 3868-3887/? E/elm: RegisterResponseModule.processRegisterResponse().  finally.

10-05 11:46:38.701 3868-3887/? D/elm: MDMBridge.setActivationResult(  packageName:com.qualys.android.samsung, packageVersion:1.1, status:fail, instanceId:null, permGroup:UNKNOWN ... )

    ErrorManagerModule.getError( httpResponseCode:1000, errorCode:10001 )

    ErrorManagerModule.getError() return :  getHttpResponseCode:500 getErrorCode:502 getErrorDescription:General network error

    ModuleBase.RecoverySKeyStatusProcessing().

    MDMBridge.getAllLicenseInfoFromSDK()

    MDMBridge.setActivationResult( FROM_NORMAL )

10-05 11:46:38.711 12764-12764/? D/Q Samsung Services: main | LicenceStatusReceiver | #######All IntentIntent { act=com.samsung.android.knox.intent.action.LICENSE_STATUS flg=0x10 pkg=com.qualys.android.samsung (has extras) } Bundle[com.samsung.android.knox.intent.extra.LICENSE_STATUS=fail, com.samsung.android.knox.intent.extra.LICENSE_PERM_GROUP=UNKNOWN, com.samsung.android.knox.intent.extra.LICENSE_RESULT_TYPE=800, com.samsung.android.knox.intent.extra.LICENSE_ERROR_CODE=502]

10-05 11:46:38.711 12764-12764/? E/Q Samsung Services: main | LicenceStatusReceiver | Error MessageELM: Network general error

10-05 11:46:38.711 12764-12764/? I/Q Samsung Services: main | LicenceStatusReceiver | #### Error code is : 502

10-05 11:46:38.721 806-1468/? D/EnterpriseDeviceManager: ContainerId: 0

 

Thanks

Samsung.Developer Qualys
Oct 10, 2018
12:29 pm

Hello,

For the S4:
We have followed below steps
#Make sure to activate the KLM first, then the ELM
#Make sure to accept the EULA agreement

Please find below drive link for dumpstats:
https://drive.google.com/file/d/18HWZYEn95DnItOKnC-AuHhJ4vOtsLK-t/view?u...

One more thing I want to ask, We are not able to read/find ELM and backward-compatibility key on SEAP portal
for that we have raised  ticket on Support portal https://partnerhub.samsung.com/s/case/
Case No:00154291
Can you please help on this?

Thanks

Comments

Hello,

did you get any chance to look into this issue that "S4 device not get activated"?
It will be very helpfull if you look into this issue.

Thanks

Samsung.Developer QualysDec 03, 2018 at 12:55 pm
Jenna Slomowitz
Oct 10, 2018
8:24 pm

Hello,

For the S4:

-Make sure to activate the SKL first, then the ELM

-Make sure to accept the EULA agreement

Then, take another dumpstate and upload it to the drive.

For the other devices:

I will keep looking in to what is causing the errors and I will get back to you.

Best regards,

Jenna

Jenna Slomowitz
Oct 10, 2018
8:34 pm

Hello,

I just want to clarify that the SKL activation is working fine, and it is only the backwards compatibility key that is causing the error. I can not see a sign of SKL key activation in the dumpstate.

As for the ticket you have raised, it is currently being investigated.

Best regards,

Jenna

Samsung.Developer Qualys
Oct 17, 2018
12:53 pm

Hello,

is there any update on this?

Thanks
 

Jenna Slomowitz
Dec 06, 2018
11:22 pm

Hello,

The issue has gotten confusing as there are multiple issues going with multible devices. Lets focus on the issue of the license not getting activated on the S4 device. Please do the following steps:

1. Activate the device admin

2. Activate the backwards compatibility key

3. Activate the KPE key

4. Take a dumpState of the device and post it.

Best regards,

Jenna

Comments

Hi Jenna
we have followed the steps you have mentioned but still not able to activate knox license. 

please find latest dumpstats.https://drive.google.com/drive/folders/1Im-PgMKPIAkXNHGAhO1wgyc-M9ak48MG?usp=sharing

Thanks

Sumit

Samsung.Developer QualysDec 14, 2018 at 4:40 am
Jenna Slomowitz
Dec 20, 2018
11:56 pm

Hello Sumit,

I looked through the provided dumpStates. There are no signs of license activation. Please make sure the dumpStates include license activation so that we can get more information on the issue.

Best regards,

Jenna

Samsung.Developer Qualys
Jan 07, 2019
2:20 pm
Javi García
Jun 11, 2019
11:40 am

Hi,

I don't know if you already solved this issue but in our devices scenario we also had a quite similar problem.

We finally solved it but this was really painful and a lot of time spent on it. I think main reason is because migration documentation is not detailed enough and it lacks a lot of information, specially in the case of backwards compatibility with devices with Knox API < 22. The information is really confusing with the licence handling process, specially in real life implementation where we have Samsung devices with different OS versions. So at the end we have to deal with many unexpected errors that could have been easier to solve if the migration information and samples would have been much more precise.

If it can be of some help for someone that is still having similar backwards problems, here you have our small summary about important details to be considered if you have to migrate to knew Knox SDK 3.x but your deployed devices still have the old Knox API < 22:

1) don't use Android API build version to decide if Samsung device with Knox should implement the compatible backwards licence but only use the simple EnterpriseDeviceManager.getAPILevel() method to know the Knox API level of your device: it was our first big mistake and this gave us a lot of confusion because, as it can be seen in the compatible table (https://seap.samsung.com/sdk/knox-version-mapping), backwards licence must only be used when Knox API < 22 and this means that some Nougat devices have to implement it meanwhile other Nougat devices can use new KPE (as you can see in the table, Samsung experts decided to implement new KPE licence in the middle of the Nougat development instead of waiting to new Oreo first version, so we were really confused when some of our Nougat devices were having so many problems with licence activation)

2) at least in the Development phase where we had so many problems, those "old" Samsung devices need to validate first the new KPE licence in order to grant correctly all the permissions using the KnoxEnterpriseLicenseManager entity with the "com.samsung.android.knox.intent.action.LICENSE_STATUS" action Intent: at least in all our testing within our deployment specific scenario, we checked that it was really needed to validate the new KPE licence first and not the backwards compatible one (honestly, we don't know if this is normal or not because in the official information it is indicated to use both BUT if you read more carefully, it is also indicated "in development, it is optional" https://seap.samsung.com/license-keys/about-licenses)

3) as said before, use "EnterpriseLicenseManager.ACTION_LICENSE_STATUS" in the Action of the IntentFilter used for the licence receiver that allows to validate the new KPE licence : in the compatible sample, it is the only one to be used, but as in our deployment we have all kind of devices, we made the terrible mistake to use the "KnoxEnterpriseLicenseManager.ACTION_LICENSE_STATUS" to validate the KPE licence in old Knox API < 22 devices, and it did not work until we used "EnterpriseLicenseManager.ACTION_LICENSE_STATUS" for the new KPE licence activation

4) related with previous point, there is no way to receive "EnterpriseLicenseManager.LICENSE_RESULT_TYPE_ACTIVATION" when we check the result type for the KPE validation (neither the EnterpriseLicenseManager.LICENSE_RESULT_TYPE_DEACTIVATION that in fact does NOT exist), so the only type result to check is the EnterpriseLicenseManager.LICENSE_RESULT_TYPE_VALIDATION one

5) it is really a pity that we are not allowed to import the Knox receiver "com.samsung.android.knox.IntentConverterReceiver" in our code because this would allow us to manage ourselves all the IntentFilter handling without overloading our Manifest with the old intents, although in our case we only allowed the needed namespace mappings and it is still working properly:

        <receiver
            android:name="com.samsung.android.knox.IntentConverterReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="edm.intent.action.license.status" />
                <action android:name="edm.intent.action.knox_license.status" />
                <action android:name="edm.intent.action.enable.kiosk.mode.result" />
                <action android:name="edm.intent.action.disable.kiosk.mode.result" />
                <action android:name="edm.intent.action.unexpected.kiosk.behavior" />
            </intent-filter>
        </receiver>

As said before, all those last small details could have been avoided if the availble migration documentation would be a little more detailed with better explained samples.

Best regards