The 28-year-old returns to McDiarmid Park for a third spell, having been part of the team that won the Scottish Cup in 2014 before a second stint on loan from Rangers.
O’Halloran, who has recently been playing in Australia with Melbourne City, told the club website: “It's great to be back. I feel really comfortable here playing under a manager who has had a huge influence on my career. I think it's obvious that I've played my best football here.”