Combine the pork, ginger ale, ginger and garlic in a large glass or ceramic dish. Place in the fridge for 2 hours or overnight, turning occasionally, to develop the flavours.
Preheat oven to 230°C. Remove the pork from the dish, reserving the marinade. Rub the skin with oil and salt. Place in a flameproof roasting pan. Roast for 30 mins or until the skin starts to crackle. Reduce oven to 180°C. Add the shallots and reserved marinade to the pan. Roast, basting with pan juices occasionally, for 2 hours or until the pork is cooked to your liking. Transfer the pork and shallot to a serving platter. Cover with foil and set aside for 10 mins to rest.
Meanwhile, strain the reserved pan juices into a jug. Heat the roasting pan over high heat. Add the flour and cook for 1 min. Gradually add the strained pan juices, stirring to combine. Bring to the boil. Cook, stirring, for 2 mins or until thickened slightly.
Heat a barbecue grill or chargrill on high. Spray the cabbage and apple with oil spray. Cook, cut-side down, for 4 mins each side or until charred and tender. Season.
Arrange the cabbage and apple around the pork mixture on the serving platter. Serve with the bread and gravy.