Superuser does not show prompt Firstly I need to say that I know this topic has been discussed many times but none of answers helped and I think this question is somewhat different than the others.

I have tried to root my Android 4.2.1 phone trying various automatic methods, where all of them failed. Also rooting using update.zip does not work due to "Invalid OTA, missing scatter" error.

However I am able to get root access using "adb root" command so I have tried to root my phone manually:


'adb root' and 'adb remount' commands to gain access to system partition
downloaded newest su binary (version 3.1.1)
pushed it to '/system/xbin/su'
set suid and sgid bit: 'chmod 6755 su' --> ls -l displays '-rwsr-sr-x root     root       380532 2008-02-29 02:33 su' 
linked '/system/xbin/su' to '/system/bin/su'
installed newest Superuser from Google play (3.1.3)
installed busybox (though this is not necessary if I understand correctly?)


Now it gets interesting:
When I 'adb shell' into my phone, I can use 'su' command and automatically get root privileges ($ changes to # and I can access root's files), and it is logged in Superuser app with originator as 'Shell'. BUT when I try application that needs root, it takes long (10 seconds) and then it fails (I have tried 'Root Checker Basic' from the store).  

The Superuser app never shows any popup, also it is not in the log. It seems that it automatically denies all requests.  

So here is my question: Have I done all steps correctly? (maybe I am missing something very important)  

I am quite desperate right now (spent nearly 2 whole days trying to have this done), so I would even resort to solutions as editing some Superuser config files and enabling root access for app manually.  

PS: If you need additional info, just ask, I will try to fill information if possible  

Further investigation:


setting auto-allow in Superuser does not work either 
running su from terminal throws exception: java.lang.SecurityException: broadcast asks to run as user -1 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL or android.permission.INTERACT_ACROSS_USERS.
So I need to set this permission somewhere..
Izzy's comments lead me to correct path, so I have managed to root the device. If somebody else having the same problem (auto-root programs don't work but you can access device using adb root), here is complete how-to to root your phone manually:


Install Superuser from ClockworkMod on Google Play directly to your phone
Prepare adb as root and make /system writeable: adb kill-server, adb root, adb remount (you might need to kill adb.exe in task manager if it hangs)
Pull the just downloaded apk to your computer: adb pull /data/app/com.koushikdutta.superuser-1.apk (note: it may have different name in the future)
On your PC: open the apk using zip (for example rename extension to .zip or use WinRar)
Copy from zip system\bin\su to your working directory
Push it to your phone: adb push su /system/xbin/su
Be sure that owner is root: adb shell chown root:root /system/xbin/su
Set SUID and SGID bits on the binary: adb shell chmod 06755 /system/xbin/su
Reboot phone: adb reboot
Try su from adb: adb shell, su; prompt should change from $ to #
Try su from phone: install terminal and use command su or use Root Checker Basic from the store
If su from adb works but does not work from phone, repeat whole process from 1 but download different Superuser application from market (for example ChainsDD's version didn't work for me)