Using any of the iPhone's private APIs, is it possible to access the call log on the iPhone without jailbreaking it? Is the same somehow possible for opened URLs in Safari and launched apps (which app was launched when and active for what amount of time)?
I know I can't submit it to the AppStore and I don't want to either.
Based on Erica Sadun's DumpFrameworks Perl script I have already created a ruby gem that dumps the header files of iOS's private framework classes. Maybe that's helpful in finding the answer: http://rubygems.org/gems/private-dumper
I'm primarily interested in how to do this (or even just part of this) without jailbreaking but I'm also interested in a jailbreak-based solution.
I haven't played with this recently so I'm not sure that these "hacks" will still work but Nicolas Seriot had come out last year with a series of examples that show how much access a developer can have in an iPhone app. He released a project called "SpyPhone" that shows these examples, one of which, I believe, does what you're asking for.
Here are slides from a talk he did on it: http://www.scribd.com/doc/23739469/iPhone-Privacy-from-Nicolas-Seriot
Hope this helps!