I just did a whole ton of different processes in anticipating for this. Did this from a launch PS4 to a newer PS4, P.T. was preserved. Here's the rundown:
If you will have access to your old PS4 and the PS4 Pro at the same time, and don't need to migrate the old drive to the new unit (approximate time under best circumstances: 1 hour per 150ish gigs to transfer once it gets underway, so ideally do it overnight):
- Connect both PS4's to the same, ideally wired, internal network. Gigabit equipment is recommended.
- Set your video equipment so the PS4 Pro (or target PS4 for the transfer) is what's displayed on screen. You don't need to see anything screen-wise on the old PS4 (source PS4).
- Power both units on, so they're not in rest mode (on the login screen so the white light bar).
- On the PS4 Pro (target PS4) go into settings and go transfer.
- It will ask you to press the power button on the source PS4 until it beeps. Do so, this will trigger the transfer options.
- You will have the option to deselect specific things from the transfer, which may be required if your target PS4 doesn't have sufficient storage (e.g. your old PS4 has a 2tb and your new PS4 doesn't). You can select/deselect apps to your heart's content.
- You will be asked if you want to transfer the activation(s). If your source PS4 has multiple accounts flagged as the primary PS4, you will have to sign into each account you want to transfer (you can also skip transferring primary account status on a per-account basis). Note that doing it this way does NOT count against you for the 6-month timer, that's only if you mass-deactivate via the web store.
- Once the transfer is done you should be all good to go on the target PS4, with the source PS4 still having everything it originally did (other than primary PS4 status if you selected that). You may have to re-enter passwords for PSN sign-in but that's it, everything else including sign-in 4-button codes, all accounts, their saves, and whatever you had installed will be there. So will folders, although any folders which end up empty from the transfer are gone, but that's easy to re-setup and recreate if needed.
If you will be offloading your old PS4 prior to having your PS4 Pro (e.g. trade-in deal), or migrating your old drive to the new unit (approximate time: backup is 1 hour per 150ish gigs, and then repeat that for the restore), a USB storage device (USB 3.0 ideally) with sufficient storage and formatted as exFAT is required.
- Connect the USB 3.0 storage device to your old PS4.
- Use the backup option in settings to create a backup on the USB drive, should mostly be self-explanatory. I think you can selectively backup apps, but I forgot to check admittedly.
- Once it's done (note: be careful with this backup, you might even want to do another on another drive if you have the equipment and time, just in case) I'd recommend initializing the source PS4, which will also de-activate all accounts (this does NOT have a 6-month cooldown, that's just for deactivating via the website). Depending on your connectivity, you may want to do a trophy sync for any accounts, as that doesn't otherwise carry over.
- Now this is when you pull your drive out of the old model if applicable. Once you replace the hard drive in your old unit with a different drive or the drive it shipped with, it'll have to be restored using a USB storage device with the latest FULL firmware in the PS4\UPDATE folder. It's important to get the full firmware and not the partial one. On Sony's site it's the one intended for new drives, and should be over 800 megs.
- Get your new PS4 Pro or whatever, hookup your USB 3.0 storage device there. If you're upgrading its drive, do so before powering it on, and install the stock firmware from the USB storage device (see previous step for details)
- Go through its initial setup, skip everything until you get to the dashboard, and then select "restore" from the settings. Once it's done it'll restart; all accounts will be signed out and deactivated but it should otherwise 100% match your prior install. Re-sign into your accounts, set the console as primary, and you're good to go.