Wenn du beim ersten Programmstart auf jedem Device "einmalig" eine
GUID erzeugst und "an einem sicheren Ort auf dem Device" abspeicherst, dann hast du doch eine eindeutige Identifikation, die auch nicht verloren gehen dürfte, wenn der User die App wieder deinstalliert und neu installiert. So mache ich es jedenfalls mit Windows. Ob das 1:1 auf Android/IOS auch so funktioniert, weiß ich mangels Erfahrung leider nicht. Denke aber, es müsste machbar sein.
Keine Chance unter iOS und Android ab Version 5. Jede App darf dort nur auf ihren eigenen Userspace zugreifen, was auch gut so ist.